[英]how to select one row from several rows with minimum value
基于SQL查询的问题选择具有最小值的不同行 。 考虑一下表:
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
是可以接受的
使用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;
我们假设所有点条目都是不同的(对于每个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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.