仅显示Microsoft SQL Server组中的第一行
我希望始终只选择ID2中最低的数字,并按ID1分组 表:仅显示Microsoft SQL Server组中的第一行,sql,sql-server,Sql,Sql Server,我希望始终只选择ID2中最低的数字,并按ID1分组 表: | ID1 | ID2 | Name | Phone | | 1 | 1 | Max | 123 | | 1 | 2 | Ben | 254 | | 1 | 3 | Robert | 541 | | 2 | 1 | Andy | 515 | | 2 | 2 | Carl | 631 | 这是我想要的输出: | ID1 | Name | Phone
| ID1 | ID2 | Name | Phone |
| 1 | 1 | Max | 123 |
| 1 | 2 | Ben | 254 |
| 1 | 3 | Robert | 541 |
| 2 | 1 | Andy | 515 |
| 2 | 2 | Carl | 631 |
这是我想要的输出:
| ID1 | Name | Phone |
| 1 | Max | 123 |
| 2 | Andy | 515 |
有人能帮我正确查询microsoft sql server吗…?您可以使用CTE和排序功能,如
行数
:
WITH CTE AS
(
SELECT ID1, ID2, Name, Phone,
RN = ROW_NUMBER() OVER (PARTITION BY ID1 ORDER BY ID2 ASC)
FROM dbo.TableName
)
SELECT ID1, ID2, Name, Phone
FROM CTE WHERE RN = 1
您可以使用CTE和排序功能,如
行数
:
WITH CTE AS
(
SELECT ID1, ID2, Name, Phone,
RN = ROW_NUMBER() OVER (PARTITION BY ID1 ORDER BY ID2 ASC)
FROM dbo.TableName
)
SELECT ID1, ID2, Name, Phone
FROM CTE WHERE RN = 1
您可以使用CTE和排序功能,如
行数
:
WITH CTE AS
(
SELECT ID1, ID2, Name, Phone,
RN = ROW_NUMBER() OVER (PARTITION BY ID1 ORDER BY ID2 ASC)
FROM dbo.TableName
)
SELECT ID1, ID2, Name, Phone
FROM CTE WHERE RN = 1
您可以使用CTE和排序功能,如
行数
:
WITH CTE AS
(
SELECT ID1, ID2, Name, Phone,
RN = ROW_NUMBER() OVER (PARTITION BY ID1 ORDER BY ID2 ASC)
FROM dbo.TableName
)
SELECT ID1, ID2, Name, Phone
FROM CTE WHERE RN = 1