我需要一些有关SQL查询的帮助。
给出下表:
+---+------+--------------+
| ID | Team | Year |
--------------------------+
| 1 | A | 2018 |
| 1 | B | 2015 |
| 1 | C | 2013 |
| 2 | A | 2019 |
| 2 | B | 2018 |
| 3 | A | 2017 |
| 3 | D | 2018 |
---------------------------
如何使用MIN(Year)按ID对这些行进行分组以获得以下结果:
+---+------+--------------+
| ID | Team | Year |
--------------------------+
| 1 | C | 2013 |
| 2 | B | 2018 |
| 3 | A | 2017 |
---------------------------
我正在使用TSQL。
谢谢!
答案 0 :(得分:1)
使用相关子查询
select a.* from table a
where a.year = (
select min(year) from table b where a.id=b.id
)
或rownumber()
select a.* from (
select * , row_number() over(partition by id order by year) rn from table_name
) as a
where a.rn=1