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

GROUP BY子句使用CASE语句时如何为对应分组列设置别名

解决方法

你只需要把GROUP BY子句中用到的CASE表达式同步放到SELECT查询列表中,再通过AS关键字设置自定义列名即可,修改后的完整查询语句如下:

SELECT 
    CASE 
        WHEN y.OFFER_ID IS NULL 
            THEN 'Null' 
        WHEN y.OFFER_ID IN ('1882', '1883', '4554', '4576') 
            THEN 'in-store' 
        ELSE 'web'  
    END AS order_channel, -- 这里的order_channel就是自定义的分组列名,可按需修改
    SUM(item_subtotal) AS rev
FROM 
    [ADAS].[dbo].[ADAS_ORDERS] x
LEFT JOIN 
    ADAS.dbo.ADAS_SUBSCRIPTIONS y ON x.SUBSCRIPTION_KEY = y.SUBSCRIPTION_KEY
                                  AND x.CUSTOMER_ID = y.customer_id
                                  AND x.ITEM_NUM = y.ITEM_NUM
WHERE
    x.ORDER_DATE BETWEEN '10-01-2021' AND '10-31-2021'
    AND x.ORDER_STATUS = 'success' 
    AND x.IMPULSE_FLG = 'n'
GROUP BY
    CASE 
        WHEN y.OFFER_ID IS NULL 
            THEN 'Null' 
        WHEN y.OFFER_ID IN ('1882', '1883', '4554', '4576') 
            THEN 'in-store' 
        ELSE 'web'  
    END
ORDER BY 
    1

注意:SELECT中的CASE表达式必须和GROUP BY中的完全一致,否则会触发语法报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 12:27:04