继续这个问题:MySQL - Conditional COUNT with GROUP BY
从MySQL开始:
SELECT puid,
COUNT(DISTINCT CASE WHEN droid_v > 0 THEN droid_v END) AS droid,
COUNT(DISTINCT sig_v) AS sig,
SUM(`Ext`) AS hits
FROM temp
GROUP BY puid
是否可以引入仅在SUM(``Ext``) AS hits
大于0的情况下给出结果的条件?
基于上面的查询,我的数据集返回SUM值为0的情况 - 这是因为我在求和之前没有检查NoExt的内容。
我想我应该在Count语句中添加一个AND,以检查NoExt是否为> 0,我看不出这适合的地方。
我尝试了一些COUNT(DISTINCT CASE WHEN droid_v > 0 THEN droid_v END)AND Ext>0 AS droid,
的排列,但此时我的语法深度非常远......
我有一种感觉,我可能不得不在我的工具的python方面这样做,但是知道这是否可以在MySQL方面实现这将是很好的。
答案 0 :(得分:2)
只需添加:
HAVING SUM(`Ext`) > 0
在GROUP BY之后的查询结束。
HAVING有点像WHERE,但在GROUP BY指定的组上运行,允许您只包含所需的组。