You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写SQL查询获取年度第二季度数据 含2011-2016年总利润示例

原代码问题梳理

  • DATE_PART函数参数使用错误,标准语法为DATE_PART(提取维度, 日期字段),不需要额外传入中间参数2,季度提取结果为1-4的数值,直接判断等于2即可筛选第二季度
  • GROUP BY逻辑错误,不需要按sales_date(单日日期)分组,仅需按统计维度「年份」分组即可
  • 缺少必要过滤条件:2011-2016年的时间范围、仅第二季度的规则限制
  • 未给聚合后的利润总和加别名,后续数据取用不便

正确实现方案

标准SQL写法(适配PostgreSQL等支持DATE_PART的数据库)

SELECT 
  sales_year,
  2 AS quarter,
  SUM(profit) AS total_q2_profit
FROM sales_data
WHERE 
  sales_year BETWEEN 2011 AND 2016
  AND DATE_PART('quarter', sales_date) = 2
GROUP BY sales_year
ORDER BY sales_year;

MySQL适配写法

如果使用不支持DATE_PART的MySQL数据库,可调整为:

SELECT 
  sales_year,
  2 AS quarter,
  SUM(profit) AS total_q2_profit
FROM sales_data
WHERE 
  sales_year BETWEEN 2011 AND 2016
  AND QUARTER(sales_date) = 2
GROUP BY sales_year
ORDER BY sales_year;

无预存sales_year字段的补充方案

如果你的表中没有提前存储sales_year字段,可以直接从日期字段提取年份进行筛选和分组:

SELECT 
  DATE_PART('year', sales_date) AS sales_year,
  2 AS quarter,
  SUM(profit) AS total_q2_profit
FROM sales_data
WHERE 
  DATE_PART('year', sales_date) BETWEEN 2011 AND 2016
  AND DATE_PART('quarter', sales_date) = 2
GROUP BY DATE_PART('year', sales_date)
ORDER BY sales_year;

内容的提问来源于stack exchange,提问作者Sucre

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 19:48:02