在sqlite中创建自动递增字段



我正在尝试创建正确的选择,以便在表中具有有序值的行号。现在,输出中确实有用于计数的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;

相关内容

  • 没有找到相关文章

最新更新