【问题标题】:Force to not use a field in group by强制不使用 group by 中的字段
【发布时间】:2020-12-17 06:54:37
【问题描述】:

我有一个店铺列表和营业额:

SELECT
CASE WHEN SELLER_ID IN ('X','Y') THEN 'SALON' ELSE STORES_ID END AS 'STORES', 
SUM (TURNOVER)
FROM PIECE
GROUP BY STORES_ID ,SELLER_ID 

问题是我不想在group by中使用SELLER_ID字段:

结果:

STORE TURNOVER
S1    500
S1    500
S2    600
S2    600
S3    550
S3    550

异常结果:我想将每家店铺的营业额总和放在一行,但我只想在 SELLER_ID IN ('X','Y') 时将一家店铺分成两行

假设 S3 是我要设计的商店:

S1     500
S2     300
S3     250
SALON  200

【问题讨论】:

    标签: sql-server group-by


    【解决方案1】:

    您还可以在GROUP BY 子句中使用CASE 语句:

    SELECT
    CASE WHEN SELLER_ID IN ('X','Y') THEN 'SALON' ELSE STORES_ID END AS 'STORES', 
    SUM (TURNOVER)
    FROM PIECE
    GROUP BY CASE WHEN SELLER_ID IN ('X','Y') THEN 'SALON' ELSE STORES_ID END
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-14
      • 2017-12-23
      • 2022-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多