如果在COUNT里面,将返回0计算?

时间:2017-05-31 08:34:55

标签: mysql

我想获得一定比例的具有特定功能的线条。为此,我使用以下查询:

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或其他内容,以便在没有该功能时不计算?

1 个答案:

答案 0 :(得分:1)

它会计数。 0是有效值,将被计算在内。 Null将不计算在内。