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 - 每个组的第一个 - 复合顺序和相反的排序顺序