gpt4 book ai didi

sql-server - T-SQL 通过列查询获取最大记录

转载 作者:行者123 更新时间:2023-12-01 00:23:19 24 4
gpt4 key购买 nike

我有一个表,我想按列获取最大记录数。我的 table :

   id (int) primary key
topId (int)
version (int)

一些记录有相同的topId。我想获取相同 topId 的最大版本记录。

Sample records with order:
id:1,2,3,4
topId:1,1,2,2
version:1,2,1,2

我想通过这样的查询获取记录:

id:2,4 
topId:1,2 (different topIds)
version:2,2 (Max Versions)

最佳答案

您可以将 ROW_NUMBER 与 CTE 一起使用:

WITH CTE AS
(
SELECT id, topId , version,
rn = row_number() over (partition by topId order by version desc)
FROM dbo.TableName
)
SELECT id, topId , version
FROM CTE
WHERE rn = 1

如果您想要所有具有最大版本的记录,请将 row_number 替换为 dense_rank

关于sql-server - T-SQL 通过列查询获取最大记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32198040/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com