sqlite 获取行号并为每个组重置

Posted

技术标签:

【中文标题】sqlite 获取行号并为每个组重置【英文标题】:sql lite getting row number and reset for each group 【发布时间】:2018-10-05 06:32:17 【问题描述】:

已经搜索过该主题,并获得了线程并尝试修改为我需要的但它以卡住结束。

从此链接 Getting row number for query

我尝试为每个组重置行号...

示例: LetterNumber | DateLetter | ToLetter | Row AA-010-2018 | 2018-09-01 | Jon | 1 AA-010-2018 | 2018-09-01 | Dian | 2 AA-010-2018 | 2018-09-01 | Jajang | 3 BB-011-2018 | 2018-09-01 | Julaeha | 4 BB-011-2018 | 2018-09-01 | Endang | 5 BB-011-2018 | 2018-09-01 | Sutisna | 6

我想让它像这样: LetterNumber | DateLetter | ToLetter | Row AA-010-2018 | 2018-09-01 | Jon | 1 AA-010-2018 | 2018-09-01 | Dian | 2 AA-010-2018 | 2018-09-01 | Jajang | 3 BB-011-2018 | 2018-09-01 | Julaeha | 1 BB-011-2018 | 2018-09-01 | Endang | 2 BB-011-2018 | 2018-09-01 | Sutisna | 3

如何在 sql lite 中实现它?

谢谢你

【问题讨论】:

【参考方案1】:

如果您使用的是 Sqlite 3.25 或更高版本,则可以使用row_number() 窗口函数:

SELECT LetterNumber
     , DateLetter
     , ToLetter
     , row_number() OVER (PARTITION BY LetterNumber) AS Row
FROM your_table
ORDER BY LetterNumber;

【讨论】:

抱歉回复晚了,我用的是旧版本....所以它无法访问 row_number() 窗口功能...

以上是关于sqlite 获取行号并为每个组重置的主要内容,如果未能解决你的问题,请参考以下文章

SQLite - 每个组的第一个 - 复合顺序和相反的排序顺序

Sqlite 如何从指定行号开始取记录

如何从 sqlite 查询中获取***组?

为啥 Django 不在 SQLite3 中重置序列?

group_concat 以及如何在 sqlite 中使用行号

sqlite3 性能测试 - 如何快速重置/清除缓存