如何在sqlite中按连续行分组?
我有一张像这样的桌子:如何在sqlite中按连续行分组?,sql,sqlite,group-by,Sql,Sqlite,Group By,我有一张像这样的桌子: id version count 1 0 3 2 0 4 3 0 3 4 1 3 5 1 2 6 1 1 7 0 3 8 0 5 我希望得到如下结果: min_id version sum 1 0 10 4 1 6 7 0 8 如果我使用SELECT MINid、version、sumcoun
id version count
1 0 3
2 0 4
3 0 3
4 1 3
5 1 2
6 1 1
7 0 3
8 0 5
我希望得到如下结果:
min_id version sum
1 0 10
4 1 6
7 0 8
如果我使用SELECT MINid、version、sumcount group by version,我会得到以下结果:
min_id version sum
1 0 18
4 1 6
因为GROUP BY将所有内容组合在同一个版本中。我只想结合那些基于id的连续版本。在SQLite中很难做到这一点,但这是可能的。现在,性能非常糟糕,但是我们的想法是,在使用不同id的任何给定行之前计算行数。这将标识每个组!瞧
select version, min(id), max(id), sum(count)
from (select t.*,
(select count(*) from t t2 where t2.version <> t.version and t2.id < t.id) as grp
from t
) t
group by version, grp;
那么,ID的数值有什么意义?它表示订单?为什么较旧的版本号以后会被重新使用?为什么版本不总是增加价值,而从不减少?