mysql每隔几分钟取值问题

此博客展示了从2021年12月31日到2022年4月期间,设备代码下PM、灯黑和NMHC的平均值、最大值、最小值、总和以及记录数的详细计算,同时涵盖了每日数据和时间段差值。数据通过时间戳进行格式化,便于理解和分析空气质量变化趋势。
摘要由CSDN通过智能技术生成

平均值

SELECT

device_code AS deviceCode,

DATE_FORMAT(

CONCAT(

DATE(DATE_SUB(timepoint,INTERVAL '08:15' MINUTE_SECOND)),

' ',

HOUR (DATE_SUB(timepoint,INTERVAL '08:15' MINUTE_SECOND)),

':',

FLOOR(MINUTE(DATE_SUB(timepoint,INTERVAL '08:15' MINUTE_SECOND)) / 10) * 10 + 8 ,

':15'

),

'%Y-%m-%d %H:%i:%s'

) AS time,

AVG(pm) AS pm,

AVG(lampblack) AS lampblack,

AVG(nmhc) AS nmhc

FROM

smk_data_histories

WHERE

timepoint BETWEEN '2021-12-31 16:08:15'

AND '2021-12-31 16:59:59'

GROUP BY

time;

最大值

SELECT

device_code AS deviceCode,

DATE_FORMAT(

CONCAT(

DATE(DATE_SUB(timepoint,INTERVAL '08:15' MINUTE_SECOND)),

' ',

HOUR (DATE_SUB(timepoint,INTERVAL '08:15' MINUTE_SECOND)),

':',

FLOOR(MINUTE(DATE_SUB(timepoint,INTERVAL '08:15' MINUTE_SECOND)) / 10) * 10 + 8 ,

':15'

),

'%Y-%m-%d %H:%i:%s'

) AS time,

MAX(pm) AS pm,

MAX(lampblack) AS lampblack,

MAX(nmhc) AS nmhc

FROM

smk_data_histories

WHERE

timepoint BETWEEN '2021-12-31 16:08:15'

AND '2021-12-31 16:59:59'

GROUP BY

time;

最小值

SELECT

device_code AS deviceCode,

DATE_FORMAT(

CONCAT(

DATE(DATE_SUB(timepoint,INTERVAL '08:15' MINUTE_SECOND)),

' ',

HOUR (DATE_SUB(timepoint,INTERVAL '08:15' MINUTE_SECOND)),

':',

FLOOR(MINUTE(DATE_SUB(timepoint,INTERVAL '08:15' MINUTE_SECOND)) / 10) * 10 + 8 ,

':15'

),

'%Y-%m-%d %H:%i:%s'

) AS time,

MIN(pm) AS pm,

MIN(lampblack) AS lampblack,

MIN(nmhc) AS nmhc

FROM

smk_data_histories

WHERE

timepoint BETWEEN '2021-12-31 16:08:15'

AND '2021-12-31 16:59:59'

GROUP BY

time;

总和

SELECT

device_code AS deviceCode,

DATE_FORMAT(

CONCAT(

DATE(DATE_SUB(timepoint,INTERVAL '08:15' MINUTE_SECOND)),

' ',

HOUR (DATE_SUB(timepoint,INTERVAL '08:15' MINUTE_SECOND)),

':',

FLOOR(MINUTE(DATE_SUB(timepoint,INTERVAL '08:15' MINUTE_SECOND)) / 10) * 10 + 8 ,

':15'

),

'%Y-%m-%d %H:%i:%s'

) AS time,

SUM(pm) AS pm,

SUM(lampblack) AS lampblack,

SUM(nmhc) AS nmhc

FROM

smk_data_histories

WHERE

timepoint BETWEEN '2021-12-31 16:08:15'

AND '2021-12-31 16:59:59'

GROUP BY

time;

总记录数

SELECT

device_code AS deviceCode,

DATE_FORMAT(

CONCAT(

DATE(DATE_SUB(timepoint,INTERVAL '08:15' MINUTE_SECOND)),

' ',

HOUR (DATE_SUB(timepoint,INTERVAL '08:15' MINUTE_SECOND)),

':',

FLOOR(MINUTE(DATE_SUB(timepoint,INTERVAL '08:15' MINUTE_SECOND)) / 10) * 10 + 8 ,

':15'

),

'%Y-%m-%d %H:%i:%s'

) AS time,

COUNT(pm) AS pm,

COUNT(lampblack) AS lampblack,

COUNT(nmhc) AS nmhc

FROM

smk_data_histories

WHERE

timepoint BETWEEN '2021-12-31 16:08:15'

AND '2021-12-31 16:59:59'

GROUP BY

time;

差值

SELECT b.device_code AS deviceCode, a.time,b.pm -c.pm AS pm,b.lampblack - c.lampblack AS lampblack,b.nmhc -c.nmhc AS nmhc FROM (

SELECT

device_code,

DATE_FORMAT(

CONCAT(

DATE(DATE_SUB(timepoint,INTERVAL '08:15' MINUTE_SECOND)),

' ',

HOUR (DATE_SUB(timepoint,INTERVAL '08:15' MINUTE_SECOND)),

':',

FLOOR(MINUTE(DATE_SUB(timepoint,INTERVAL '08:15' MINUTE_SECOND)) / 10) * 10 + 8,

':15'

),

'%Y-%m-%d %H:%i:%s'

) AS time,

MAX(timepoint) AS maxTime,

MIN(timepoint) AS minTime

FROM

smk_data_histories

WHERE

timepoint BETWEEN '2021-12-31 16:08:15'

AND '2021-12-31 16:59:59'

GROUP BY

time) AS a,smk_data_histories b,smk_data_histories c

WHERE a.maxTime = b.timepoint AND a.minTime = c.timepoint AND a.device_code = b.device_code AND a.device_code = c.device_code;

SELECT

device_code AS deviceCode,

DATE_FORMAT(

CONCAT(

DATE(DATE_SUB(timepoint,INTERVAL DATEDIFF(timepoint,'2021-12-31 16:08:15') - FLOOR(DATEDIFF(timepoint,'2021-12-31 16:08:15')/30)*30 DAY)),

' ','16:08:15'

),

'%Y-%m-%d %H:%i:%s'

) AS time,

AVG(pm) AS pm,

AVG(lampblack) AS lampblack,

AVG(nmhc) AS nmhc

FROM

smk_data_histories

WHERE

timepoint BETWEEN '2021-12-31 16:08:15'

AND '2022-04-01 17:59:59'

GROUP BY

time;

第二种方式

SELECT

device_code AS deviceCode,

DATE_FORMAT(

CONCAT(

DATE(DATE_SUB(timepoint,INTERVAL TIMESTAMPDIFF(DAY,'2021-12-31 16:08:15',timepoint) - FLOOR(TIMESTAMPDIFF(DAY,'2021-12-31 16:08:15',timepoint)/30)*30 DAY)),

' ','16:08:15'

),

'%Y-%m-%d %H:%i:%s'

) AS time,

AVG(pm) AS pm,

AVG(lampblack) AS lampblack,

AVG(nmhc) AS nmhc

FROM

smk_data_histories

WHERE

timepoint BETWEEN '2021-12-31 16:08:15'

AND '2022-04-01 17:59:59'

GROUP BY

time;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值