use*_*803 9 mysql null sum rows
我们假设下表:
X VALUE
1 2
1 3
2 NULL
2 4
Run Code Online (Sandbox Code Playgroud)
我想要一个由X分组的结果集,其总和为VALUE,但前提是所有与每个X值相关的行都不为空.
使用相同的示例,结果必须是:
X SUM(VALUE)
1 5
Run Code Online (Sandbox Code Playgroud)
如您所见,X=2由于(2, NULL)元组而未选中.
我希望,只要可能,不使用子查询.
非常感谢你!
Alm*_* Do 14
您可以通过以下方式实现:
SELECT
x,
SUM(value)
FROM
t
GROUP BY
x
HAVING
COUNT(value)=COUNT(*)
Run Code Online (Sandbox Code Playgroud)
这将按以下方式工作:以正常方式对值进行分组,然后将整个计数(因此*指向该值)与列计数(不包括NULL-s)进行比较.如果他们不平等,那么就不NULL应该包括价值和价值.