gpt4 book ai didi

SQL:对数据排序后获取数据集的排名

转载 作者:行者123 更新时间:2023-12-01 11:54:01 25 4
gpt4 key购买 nike

我有一个简单的表,其中包含唯一标识符和每个标识符的计数器值。作为结果,我需要得到的是在表格按计数器值排序后特定标识符的位置。

我目前的解决方案是对所有数据做一个SELECT,同时对结果进行排序,然后遍历结果列表找到所需的标识符,找到它的位置就是我想要获得的排名值。

不幸的是,这需要大量内存和大型表的计算时间。所以我的问题是:是否有SQL语句在表排序后返回特定标识符的位置?

最佳答案

如果您使用的是 SQL Server 2005 和更新版本,则可以使用 RANK()DENSE_RANK() 窗口函数:

SELECT
(your list of columns here),
RANK() OVER(ORDER BY yourcolumnnamehere)
FROM dbo.YourTable

或:

SELECT
(your list of columns here),
DENSE_RANK() OVER(ORDER BY yourcolumnnamehere)
FROM dbo.YourTable

参见 explanation of difference between RANK and DENSE_RANK here

其他 RDBMS(如 Oracle)似乎也支持这些窗口函数。

关于SQL:对数据排序后获取数据集的排名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8785050/

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