mysql 时间周期_MySQL获取行中日期的周期数

我有一个MySQL表,类似于这个例子:

c_id date value

66 2015-07-01 1

66 2015-07-02 777

66 2015-08-01 33

66 2015-08-20 200

66 2015-08-21 11

66 2015-09-14 202

66 2015-09-15 204

66 2015-09-16 23

66 2015-09-17 0

66 2015-09-18 231

我需要得到的是日期排在一起的时期.我没有固定的开始或结束日期,可以有任何.

例如:2015-07-01 – 2015-07-02是一个priod,2015-08-01是第二期,2015-08-20 – 2015-08-21是第三期和2015-09-14 – 2015- 09-18为第四期.所以在这个例子中有四个时期.

SELECT

SUM(value) as value_sum,

... as period_count

FROM my_table

WHERE cid = 66

不能整天想出来……谢谢.

解决方法:

我没有足够的声誉对上述答案发表评论.

如果你需要的只是分数数,那么你可以简单地改写你的问题:“有多少条目有一个日期D,这样日期D – 1 DAY没有条目吗?”

在这种情况下,这就是您所需要的:

SELECT

COUNT(*) as PeriodCount

FROM

`periods`

WHERE

DATE_ADD(`date`, INTERVAL - 1 DAY) NOT IN (SELECT `date` from `periods`);

在PHP中,只需从第一行中选择“PeriodCount”列.

你让我在制作一些疯狂的存储过程方法,直到澄清:P

标签:mysql

来源: https://codeday.me/bug/20190727/1557587.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值