【sql基础】按照名字分组查询时间最早的一条记录


给出2种解决方案

 

rownumber

SELECT *
FROM
(
SELECT IdentityID, OpenID, ROW_NUMBER() OVER(PARTITION BY OpenID ORDER BY CreateTime DESC
) AS rownumber FROM dbo.T_Account
) AS tmp
WHERE tmp.rownumber = 1

 

 

相关子查询

SELECT DISTINCT OpenID, test1.IdentityID FROM dbo.T_Account 
AS test1
WHERE test1.IdentityID
IN 
(
SELECT TOP 1 IdentityID FROM dbo.T_Account
WHERE dbo.T_Account.OpenID =  test1.OpenID
ORDER BY CreateTime DESC

)

 

 

查询结果

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM