计算sqlite中的运行计数

时间:2016-11-27 00:09:03

标签: sql database sqlite

我想知道如何计算 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行。

注意:此解决方案适用于任意大型表。感谢。

1 个答案:

答案 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;