仅当组内的每个值都大于0时,SQL SUM

时间:2018-07-16 17:39:30

标签: sql group-by vertica vsql

这是一个示例数据集:

ID   Value
1   421
1   532
1   642
2   3413
2   0
2   5323

在这种情况下,我希望查询仅对ID = 1求和,因为它的所有值都大于0。我不能使用说WHERE的{​​{1}}语句,因为那样ID = 2仍会返回一个值。我觉得这可能是一个我可以使用WHERE Value > 0语句的实例,但是我还不足够创造性地使用它。

顺便说一句,我不会简单地添加一个OVER(PARTITION BY...)语句,因为这需要覆盖更大的数据集。

1 个答案:

答案 0 :(得分:6)

只需使用having

select id, sum(value)
from t
group by id
having min(value) > 0;