我想知道如何计算 SQLite 中的运行计数,如下所示
鉴于下表:
id | value
-- | -----
A | 10
A | 20
B | 40
A | 15
B | 20
C | 30
我想得到下表:
id | value | running_count
-- | ----- | -------------
A | 10 | 1
A | 20 | 2
B | 40 | 1
A | 15 | 3
B | 20 | 2
C | 30 | 1
例如,其中id = A且value = 15的行的running_count = 3,因为这是ID为A的第3行。
注意:此解决方案适用于任意大型表。感谢。
答案 0 :(得分:1)
唉,SQLite不支持窗口功能。您可以使用相关子查询执行此操作。但是,您需要一个正确的订购列。在SQLite中,我认为您可以使用rowid
:
select t.*,
(select count(*)
from t t2
where t2.id = t.id and t2.rowid <= t.rowid
) as running_count
from t;