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,它不计算 NULLs.

使用ELSE null代替ELSE 0

使用SUM()代替count()