我正在尝试创建正确的选择,以便在表中具有有序值的行号。现在,输出中确实有用于计数的row_num
字段,但我希望在创建计数之前,根据value
列对计数进行升序排序。
如果可能的话,如何做到这一点?
现有代码:
select id, value, (select count(*)
from tbl b where a.id >= b.id) as row_num
from tbl a order by value asc
当前输出(无订单(:Fiddle
id | value | row_num
1 | jbl | 1
3 | bog | 2
4 | tak | 3
6 | oza | 4
8 | ars | 5
电流输出(按值排序(:Fiddle
id | value | row_num
8 | ars | 5
3 | bog | 2
1 | jbl | 1
6 | oza | 4
4 | tak | 3
期望输出:
id | value | row_num
8 | ars | 1
1 | bog | 2
3 | jbl | 3
6 | oza | 4
8 | tak | 5
有一个类似的线程(如何在sqlite中使用ROW_NUMBER(,但value
列没有排序。
谢谢。
使用row_number()
窗口函数。
SELECT id
, value
, row_number() OVER (ORDER BY value) AS row_num
FROM tbl
ORDER BY value;