gpt4 book ai didi

tsql - 分组但包括 "missing"值

转载 作者:行者123 更新时间:2023-12-05 03:15:58 24 4
gpt4 key购买 nike

假设我有以下内容。

select
case
when fcompany = 'Acme' then 'Red'
when fcompany = 'Acme Rockets' then 'Blue'
else 'Green'
end
Color
,sum(fann_sales)
FROM
slcdpm
group by
case
when fcompany = 'Acme' then 'Red'
when fcompany = 'Acme Rockets' then 'Blue'
else 'Green'
end

假设它通常只返回两种颜色。提取所有三种颜色并包含 0 作为缺失值的最佳方法是什么?

联合所有?

最佳答案

将 GROUP 移动到具有更多列的条件 SUM 中?

select
sum(CASE WHEN fcompany = 'Acme'
THEN fann_sales ELSE 0 END) AS redsales,
sum(CASE WHEN fcompany = 'Acme Rockets'
THEN fann_sales ELSE 0 END) AS bluesales
sum(CASE WHEN fcompany NOT IN ('Acme Rockets', 'Acme')
THEN fann_sales ELSE 0 END) AS greensales
FROM
slcdpm

为此,请绕过 table 。 UNION ALL 或子查询方法(在其他答案中)将每个子句触及一次表 = 稍慢。

关于tsql - 分组但包括 "missing"值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4798324/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com