我想给排序的查询输出一个排名。我该怎么做?
你没有提到你正在使用哪个数据库,但大多数都支持像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()