找到sqlite中最长的条纹

时间:2017-05-18 19:45:08

标签: sql sqlite

请帮我获取条纹数据。我有目标成就表

表测试

DT

2017-01-01
2017-01-02
2017-01-03. //3 days end of streak
2017-02-10 // 1 day
2017-02-15
2017-02-16
2017-02-17
2017-02-18 //4 days

我在MySQL中试过这个

Select dt, (select count(*) from test as t1 where t1.dt < t2.dt and datediff(t2.dt,t1.dt) =1) as str 
from test as t2

得到了

Dt         str
2017-01-01  0
2017-01-02  1
2017-01-03  2
2017-02-10  0
2017-02-15  0
2017-02-16  1
2017-02-17  2
2017-02-18  3

是否有可能得到这样的东西

Dt.        Str 
2017-01-03  3
2017-02-10  1
2017-02-18  4

得到马克思的吗?

1 个答案:

答案 0 :(得分:4)

您可以从当前行的日期中减去行号(即行数&lt; =当前行的日期),以将具有一天差异的连续行分类到同一组中。然后它只是一个计算计数的分组操作。

<div class="center-align" *ngFor="let counter of count;let i = index" >
      <p [ngStyle]="{'backgroundColor': (i+1 > 4) ? 'lightblue' : 'white'}" [ngClass]="{whitetext: counter > 4}">{{ counter }}</p>
</div>

运行内部查询以查看如何分配组。