假设我是百货商店经理,我需要统计不同商店 A.B C 和 D 的销售额。
代码类似于
select
"Sales" as V1,
count(distinct case when XXX) as V1,
count(distinct case when XXX) as V2,
count(distinct case when XXX) as V3,
from sales_data
group by store;
但是在当前的销售数据集中,到目前为止只有商店 A 和 B 的数据,上面的输出将只有商店 A 和 B 的行,而不是 C 和 D 的行。我如何使输出为“ store”,即使它不存在于数据集中,所以它总是为每个商店输出?
部门 | 身份证 | 销售 |
---|---|---|
A | 01 | 5 |
A | 01 | 4 |
B | 02 | 2 |
A | 03 | 3 |
所以我想要按部门划分的产出销售
部门 | 总计 |
---|---|
A | 12 |
B | 2 |
C | 0 |
我想执行按部门分组的其他查询,但我希望查询输出考虑每个部门,即使没有像上面这样的数据
谢谢
我知道这可能很基本,但我尝试用谷歌搜索,但找不到任何东西
您应该使用
SUM()
函数而不是 COUNT()
:
SELECT t.Department,
COALESCE(SUM(Sale), 0) as Total
FROM (
SELECT 'A' AS Department
UNION ALL SELECT 'B'
UNION ALL SELECT 'C'
) AS t
LEFT JOIN sales_data s ON s.Department = t.Department
GROUP BY t.Department