SQL GROUP BY优化需求:汇总指定日期后门店商品总发货量
修改SQL实现指定条件下发货量的单行汇总
要得到你期望的单行汇总结果,只需要对原SQL做两处关键修改:
- 移除SELECT语句中的
DISPATCH_DATE字段 - 从GROUP BY子句中去掉
CAST(DISPATCH_DATE AS DATE),让分组维度仅保留BTC_ITEM_CODE和STORE_NO,从而将所有符合条件的发货量汇总为一行
修改后的完整SQL代码如下:
SELECT HYB.BTC_ITEM_CODE , STORE_NO , SUM(DISPATCHED_QTY) AS DISPATCHED_QTY FROM srmi.FACT_HYBRID_DISPATCHES_DLY AS MFC INNER JOIN ( SELECT BTC_ITEM_CODE , SAP_ITEM_CODE FROM scdm.DIM_SAP_TO_BTC_ITEM_CODE ) AS HYB ON MFC.SAP_ITEM_CODE = HYB.SAP_ITEM_CODE WHERE CAST(DISPATCH_DATE AS DATE) > '2022-10-30' AND BTC_ITEM_CODE = '8355010' AND STORE_NO = 2227 GROUP BY BTC_ITEM_CODE, STORE_NO
执行这段代码后,将得到你想要的结果:
| BTC_ITEM_CODE | STORE_NO | DISPATCHED_QTY |
|---|---|---|
| 8355010 | 2227 | 279 |
补充说明
原代码中GROUP BY包含DISPATCH_DATE,会强制按日期拆分数据;移除该字段后,SUM(DISPATCHED_QTY)会计算所有符合筛选条件的记录的发货量总和,最终合并为单行输出。
内容的提问来源于stack exchange,提问作者Lyndsey_83
相关产品推荐
相关产品推荐

