繁体   English   中英

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

[英]SQL SUM only when each value within a group is greater than 0

这是一个示例数据集:

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

我想要一个查询,在这种情况下,由于所有值都大于0,因此只求和ID = 1。我不能使用WHERE语句表示WHERE Value > 0因为那时ID = 2仍会返回值。 我觉得这可能是我可以使用OVER(PARTITION BY...)语句的一个实例,但是我对创建它的用途并不熟悉。

顺便说一句,我不只是添加WHERE ID = 1语句,因为这需要覆盖更大的数据集。

只需使用having

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM