不使用WHERE子句筛选2015年各月总销售额的SQL查询方案
筛选2015年各月总销售额的SQL修改方案
要只获取2015年各月的总销售额,只需在原查询中添加WHERE子句过滤年份即可,以下提供两种常用实现方式:
方式一:直接提取年份判断
这种写法直观易懂,适合快速编写:
SELECT extract(year FROM ord_date) AS year , extract(month FROM ord_date) AS month , SUM(order_tot) AS Total_Sales FROM dsci_504.orders WHERE extract(year FROM ord_date) = 2015 GROUP BY extract(year FROM ord_date), extract(month FROM ord_date) ORDER BY year, month;
方式二:使用日期范围匹配
如果ord_date字段建有索引,这种写法能利用索引提升查询性能,更适合大数据量场景:
SELECT extract(year FROM ord_date) AS year , extract(month FROM ord_date) AS month , SUM(order_tot) AS Total_Sales FROM dsci_504.orders WHERE ord_date >= '2015-01-01' AND ord_date < '2016-01-01' GROUP BY extract(year FROM ord_date), extract(month FROM ord_date) ORDER BY year, month;
修改后查询会返回符合预期的结果,前4行示例如下:
| year | month | total_sales |
|---|---|---|
| 2015 | 1 | 55527.73 |
| 2015 | 2 | 53219.29 |
| 2015 | 3 | 53661.72 |
| 2015 | 4 | 109908.03 |
内容的提问来源于stack exchange,提问作者stella1897
相关产品推荐
相关产品推荐

