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

SQL CUBE分组:无法修改汇总行Brand名称求助

解决方案

你需要调整CASE语句的逻辑,区分不同的分组汇总场景,特别是针对单个品牌的全局总计行,拼接对应的品牌名称。修改后的SQL代码如下:

SELECT 
    Month(PurchaseDate) AS 'Month',
    CASE
        -- 单个品牌的全月份总计行
        WHEN GROUPING(MONTH(PurchaseDate)) = 1 AND GROUPING(Brand) = 0 
            THEN 'Grand Total for ' + Brand
        -- 当月所有品牌的小计行
        WHEN GROUPING(MONTH(PurchaseDate)) = 0 AND GROUPING(Brand) = 1 
            THEN 'Monthly SubTotal'
        -- 全局总计行
        WHEN GROUPING(MONTH(PurchaseDate)) = 1 AND GROUPING(Brand) = 1 
            THEN 'Grand Total'
        -- 正常明细行
        ELSE Brand 
    END AS 'Brand', 
    SUM(PRICE) AS 'Total Amount' 
FROM [Purchase_Items]
GROUP BY MONTH(PurchaseDate), Brand WITH CUBE

逻辑说明:

  • GROUPING(MONTH(PurchaseDate)) = 1 AND GROUPING(Brand) = 0:表示该分组是某个品牌跨所有月份的总计,此时拼接品牌名称生成目标文本
  • GROUPING(MONTH(PurchaseDate)) = 0 AND GROUPING(Brand) = 1:表示该分组是某个月份下所有品牌的小计,保留原有的“Monthly SubTotal”
  • GROUPING(MONTH(PurchaseDate)) = 1 AND GROUPING(Brand) = 1:表示全局所有数据的总计,显示“Grand Total”
  • 最后用ELSE处理正常的明细行,直接显示品牌名称

这样调整后,就能得到你预期的汇总行文本格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 06:47:34