COUNT with CASE WHEN 在使用除法时显示相同的结果
COUNT with CASE WHEN is showing the same result when using division
我有以下查询 returns 售出的产品:
SELECT
COUNT(CASE WHEN sold_flag =1
AND product_category_ = 7
AND year(sold_date) = 2021
THEN 1 ELSE 0 END)
FROM fact_sales;
我想计算 product_category =7 的已售产品占所有产品的百分比:
SELECT
(COUNT(CASE WHEN sold_flag =1
AND product_category_ = 7
AND year(sold_date) = 2021
THEN 1 ELSE 0 END) /
COUNT(CASE WHEN product_category_ = 7
AND year(sold_date) = 2021
THEN 1 ELSE 0 END)) * 100
FROM fact_sales;
我得到的结果是 100,虽然我分别执行每个查询,但它们没有相同的结果。
count()
计算 0 和 1,它不计算 NULL
s.
使用ELSE null
代替ELSE 0
或
使用SUM()
代替count()
我有以下查询 returns 售出的产品:
SELECT
COUNT(CASE WHEN sold_flag =1
AND product_category_ = 7
AND year(sold_date) = 2021
THEN 1 ELSE 0 END)
FROM fact_sales;
我想计算 product_category =7 的已售产品占所有产品的百分比:
SELECT
(COUNT(CASE WHEN sold_flag =1
AND product_category_ = 7
AND year(sold_date) = 2021
THEN 1 ELSE 0 END) /
COUNT(CASE WHEN product_category_ = 7
AND year(sold_date) = 2021
THEN 1 ELSE 0 END)) * 100
FROM fact_sales;
我得到的结果是 100,虽然我分别执行每个查询,但它们没有相同的结果。
count()
计算 0 和 1,它不计算 NULL
s.
使用ELSE null
代替ELSE 0
或
使用SUM()
代替count()