【发布时间】:2020-04-22 09:10:48
【问题描述】:
我有这样的数据:
select * from date_table;
startdate
2018-08-22
2018-08-24
2018-08-27
2018-08-29
2018-08-31
2018-09-05
2018-09-07
2018-09-10
我已经写了这个查询,它只给出了天的差异
CREATE temporary TABLE if not exists results AS (
select t.startdate, datediff(
(select min(t1.startdate)
from
date_table t1 where
t1.startdate>t.startdate),
t.startdate ) days_diff
from
date_table t) ;
select * from results:
以上查询给出的结果为:
startdate days_diff
2018-08-22 2
2018-08-24 3
2018-08-27 2
2018-08-29 2
2018-08-31 5
2018-09-05 2
2018-09-07 3
2018-09-10
但我想要这样的结果:
startdate enddate days_diff
2018-08-22 2018-08-24 2
2018-08-27 2018-08-29 2
2018-08-31 2018-09-05 5
2018-09-07 2018-09-10 3
我正在使用 MySQL(5.6 版)。请让我知道是否有解决此问题的方法。 提前致谢。
【问题讨论】:
-
现在不可能。记录没有允许区分什么是开始什么是结束的属性。
-
当然你可以枚举记录(使用用户定义的变量)并通过奇偶数来区分...在这种情况下按
number-1 MOD 2分组
标签: mysql sql stored-procedures