我想获得一定比例的具有特定功能的线条。为此,我使用以下查询:
select
count(distinct case when a.has_feature="Y" then p.id else 0 end)*100/count(distinct p.id)
FROM products p
JOIN a on a.id=p.id
WHERE 1
此查询已简化,但目标是仅在一个查询中获得此百分比,a.has_feature="Y"
上的测试不能在WHERE
条款中,因为我还需要没有的产品功能。
我的问题是第一次计算。
case when
将返回p.id
或0.是0还是应该使用null
或其他内容,以便在没有该功能时不计算?
答案 0 :(得分:1)
它会计数。 0是有效值,将被计算在内。 Null将不计算在内。