sql - SQL:如何使用 GROUP BY 获取所有行
问题描述
给定这个示例表。我想获得债务总和> 1000的所有行。
TABLE_1
ID NAME DEBT
1 Daniel 1000
2 Daniel 10
3 Xavier 500
4 Ricardo 600
5 Ricardo 300
6 Eduardo 2000
7 Eduardo 1000
结果表应为:
RESULT
ID NAME DEBT
1 Daniel 1000
2 Daniel 10
6 Eduardo 2000
7 Eduardo 1000
这是因为 Daniel 的债务是 1010,所以大于 1000。对于 Eduardo 也是如此,它的债务是 3000。重要的结果是 ID。如何在 SQL 中进行此查询?
解决方案
您可以使用窗口函数:
select t.* -- or whatever columns you want
from (select t.*,
sum(debt) over (partition by name) as sum_debt
from t
) t
where sum_debt > 1000;