0

我正在做 android 应用程序,我必须在其中找到结果日期组。
我在 sqlite 数据库中关注了日期

2013-05-04
2013-05-06
2013-05-07
2013-05-08
2013-05-10
2013-05-11
2013-05-12
2013-05-13
2013-05 -14
2013-05-15
2013-05-16
2013-05-17
2013-05-26
2013-05-27


我想按照以下方式对它们进行分组

2013-05-04

2013-05-06
2013-05-07
2013-05-08

2013-05-10
2013-05-11
2013-05-12
2013-05-13
2013- 05-14
2013-05-15
2013-05-16
2013-05-17

2013-05-26
2013-05-27

那么,是否可以在 sqlite 中对这些日期进行分组?

4

2 回答 2

0

1如果记录是组中的第一条记录,则以下查询将第二列中的值设置为。(“第一个”记录是不存在上一个日期的记录的任何记录。)

SELECT MyDate,
       NOT EXISTS (SELECT 1
                   FROM MyTable AS T2
                   WHERE T2.MyDate = date(T1.MyDate, '-1 days')
                  ) AS FirstInGroup
FROM MyTable AS T1
ORDER BY MyDate

示例输出:

2013-05-04  1
2013-05-06  1
2013-05-07  0
2013-05-08  0
2013-05-10  1
2013-05-11  0
2013-05-12  0
2013-05-13  0
2013-05-14  0
2013-05-15  0
2013-05-16  0
2013-05-17  0
2013-05-26  1
2013-05-27  0
于 2013-05-27T14:45:38.937 回答
0

SQL 组不是您认为的组。

可以对子字符串进行排序:

sqlite> select d from t order by substr(d, 0, 10);
2013-05-04
2013-05-06
2013-05-07
2013-05-08
2013-05-10
2013-05-11
2013-05-12
2013-05-13
2013-05-14
2013-05-15
2013-05-16
2013-05-17
2013-05-26
2013-05-27

请参阅SQLite 函数

于 2013-05-27T14:37:42.580 回答