【发布时间】:2017-05-05 08:39:57
【问题描述】:
我有一个很长的列表,如下所示(列名和数据匿名)
ID | ID2 | Value
1 | 5 | 900
1 | 7 | 400
2 | 2 | 100
2 | 8 | 800
2 | 2 | 200
3 | 4 | 100
3 | 5 | 300
4 | 8 | 750
4 | 5 | 900
我所追求的是能够使每列“ID”有 1 行,它具有最低 ID2 的值的总和。
例如,上表会变成:
ID | ID2 | Value
1 | 5 | 900
2 | 2 | 300
3 | 4 | 100
4 | 5 | 900
我已经尝试了几个脚本变体,但没有成功。这是我当前清理的代码:
SELECT res.id
, min(id2) as rdk
,sum(value)
FROM x as res
left join y as clai
on res.id = clai.id
left join z as cal
on clai.col99 = cal.col99
group by
res.id
但是,总和是将“ID”的所有价值相加,而不仅仅是最低的“ID2”?
任何帮助表示赞赏!
【问题讨论】:
-
为什么是
2 | 2 | 300?不应该是2 | 2 | 100吗? -
@KobyDouek 这将是 300,因为有两个 ID = 2 和一个 ID2 = 2 的条目,所以它将这两个值加在一起,如果这有意义吗?