【问题标题】:SQL: Group by unchange status interval lengthSQL:按不变状态间隔长度分组
【发布时间】:2012-09-27 12:50:28
【问题描述】:
有一个表event,其属性为start、end、status。可能有以下条目:
09:00:00 27.09.2012 10:00:00 27.09.2012 有效
10:00:00 27.09.2012 11:00:00 27.09.2012 有效
11:00:00 27.09.2012 12:00:00 27.09.2012 活动
12:00:00 27.09.2012 13:00:00 27.09.2012 睡觉
13:00:00 27.09.2012 14:00:00 27.09.2012 睡觉
14:00:00 27.09.2012 15:00:00 27.09.2012 活跃
现在我想提取状态没有改变的区间。这个例子的结果是:
09:00:00 27.09.2012 12:00:00 27.09.2012 有效
12:00:00 27.09.2012 14:00:00 27.09.2012 睡觉
14:00:00 27.09.2012 15:00:00 27.09.2012 活跃
是否有一些 SQL 习惯用法来创建这种结果?我使用的是 MySQL,但如果你给我一些其他 SQL 方言,我也可以翻译它,只要它不使用一些奇怪的供应商功能。
【问题讨论】:
标签:
mysql
sql
join
group-by