基于SQL query to select distinct row with minimum value的问题。 考虑一下表:
id game point
1 x 1
1 y 10
1 z 1
2 x 2
2 y 5
2 z 8
使用上述问题的建议答案(选择点列中具有最小值的ID,按游戏分组)我们获取
id game point
1 x 1
1 z 1
2 x 2
问题是如何获得每个ID的单个输出的答案。两个输出
id game point
1 x 1
2 x 2
和
id game point
1 z 1
2 x 2
是可以接受的。
答案 0 :(得分:4)
使用row_number()
:
select t.*
from (select t.*,
row_number() over (partition by id order by point asc) as seqnum
from t
) t
where seqnum = 1;
答案 1 :(得分:-1)
我们假设所有点条目都是不同的(对于每个id和它的游戏,所以我们可以通过它的游戏获得每个id的最小值),使用子查询和具有两个条件的内部联接将为您提供结果。等待。如果它不能与你合作我得到另一个解决方案:
SELECT yt.*,
FROM Yourtable yt INNER JOIN
(
SELECT ID, MIN(point) MinPoint
FROM Yourtable
GROUP BY ID
) t ON yt.ID = t.ID AND yt.Record_Date = yt.MinDate