我有以下表结构,例如
id | group | parent | value
1 123 1 10
2 123 1 25
3 224 1 12
4 224 1 22
5 225 2 18
6 225 2 10
7 326 2 18
8 326 2 35
现在我需要获取每个组的最大数量,并将每个父列的结果组合在一起,以便所需的结果如下所示:
group | parent | value
123 1 47
225 2 53
我可以按父母对它们进行分组,但不知道如何在父母中按组进行分组。
谢谢
答案 0 :(得分:1)
使用这样的嵌套查询:
select
parent,
sum(max_of_group_value)
from (
select
parent,
group
max(value) as max_of_group_value)
from <table>
group by
parent,
group
) t
group by
parent;
或者,使用CTE作为子查询:
;with t as (
select
parent,
group
max(value) as max_of_group_value)
from <table>
group by
parent,
group
)
select
parent,
sum(max_of_group_value)
from t
group by
parent;
现在仔细查看您喜欢的查询的任何表示;是不是你在描述问题时编写的代码(问题和评论合并)?这是编写明显正确且可读的代码的关键。