gpt4 book ai didi

mysql - 在排序结果集中选择行数的有效方法(MySQL)

转载 作者:太空宇宙 更新时间:2023-11-03 10:39:13 26 4
gpt4 key购买 nike

MySQL 表如下所示:

Item  Score
-----------
A 3.646
B 2.775
C 6.383
D 0.122
...

Score 列上有一个索引。我想按分数降序选择项目,我还想知道项目的排名(即结果集中该特定行的编号)。在这个例子中,期望的结果是:

Item  Rank
----------
C 1
A 2
B 3
D 4

有没有一种有效的方法可以在大 table 上做到这一点?如果可能,我想避免子选择。

P.S.:是的,结果集中的排名当然总是 1、2、3,...但是不,我不能只在应用程序中推导出这个,因为这些结果将在数据库中进一步处理,而不是返回到应用程序。

最佳答案

SET @rank=0;
SELECT Item, @rank:=@rank+1 AS rank
FROM yourTable
ORDER BY Score DESC;

此选项使用 session 变量来模拟行号功能,因为 MySQL 不支持分析函数。

这是一个link to a helpful tutorial其中更深入地讨论了在 MySQL 中模拟行号。

关于mysql - 在排序结果集中选择行数的有效方法(MySQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41798889/

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