mysql - 我们如何对查询检索的元组进行编号?
问题描述
我想给排序的查询输出一个排名。我怎样才能做到这一点?
解决方案
你没有提到你正在使用哪个数据库,但它们中的大多数都支持窗口函数,比如row_number()
让你这样做。
类似于以下内容:
SELECT *, row_number() OVER (ORDER BY foo)
FROM yourtable
ORDER BY foo;
(或rank()
,或dense_rank()
。它们在排序项中的关系情况下都表现不同)。
或者,当然,您可以为在执行查询的程序中检索到的每一行增加一个计数器。
rn = 0
for each row in results
rn += 1
do_something()
推荐阅读
- design-patterns - 装饰器与责任链 DP
- functional-programming - 函数式编程原则与函数式编程范式?
- mysql - 如何在SELECT字段中同时使用distinct、count和sum?
- android - 在我的联系人列表中自动保存联系人
- php - 如何显示图像名称字符串中的第一个图像名称
- aws-elasticsearch - 更新 AWS Elasticsearch 集群设置
- r - 保持从 fread 丢弃的行
- haskell - Haskell 多参数类(模板类型类)
- c++ - 声明需要退出时析构函数 [-Werror,-Wexit-time-destructors]
- javascript - 如何按表格标题对数组进行排序