我要尽快拿到创建日期 与 group by 身份证号码 .这里是记录的样本。
| AccountID | DisplayName | CreatedDate | IdentityNumber | OrganizationID |
|-----------|---------------|-------------|----------------|----------------|
| 1 | John | 1 Jan 2018 | 1234 | 1000 |
| 2 | John | 15 Jan 2018 | 1234 | 1001 |
| 3 | John | 20 Jan 2018 | 1234 | 1002 |
| 4 | Michael | 1 Jan 2018 | 1235 | 1000 |
| 5 | Michael | 3 Jan 2018 | 1235 | 1003 |
| 6 | Wood | 2 Jan 2018 | 1236 | 1002 |
所以我想产生这样的结果。
| AccountID | DisplayName | CreatedDate | IdentityNumber | OrganizationID |
|-----------|---------------|-------------|----------------|----------------|
| 1 | John | 1 Jan 2018 | 1234 | 1000 |
| 4 | Michael | 1 Jan 2018 | 1235 | 1000 |
| 6 | Wood | 2 Jan 2018 | 1236 | 1002 |
这是我的 sql 片段
SELECT IdentityNumber, MIN(CreatedDate)
FROM Accounts
GROUP BY IdentityNumber
是的,我可以通过身份号码获得最早的组记录。但是我如何在没有 的情况下获取 AccountID、DisplayName、OrganizationID分组 ?
最佳答案
另一种选择是使用 WITH TIES
与 Row_Number()
一致的条款
Select Top 1 with ties *
From dbo.Accounts
Order By Row_Number() over (Partition By IdentityNumber Order By CreatedDate)
关于sql-server - 使用 group by-SQL 获取最早日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48427490/