【发布时间】:2015-11-18 16:12:45
【问题描述】:
我有一张如下所示的表格: http://sqlfiddle.com/#!9/152d2/1/0
CREATE TABLE Table1 (
id int,
value decimal(10,5),
dt datetime,
threshold_id int
);
当前查询:
SELECT sensors_id, DATE_FORMAT(datetime, '%Y-%m-%d'), MIN(value), MAX(value)
FROM Readings
WHERE datetime < "2015-11-18 00:00:00"
AND datetime > "2015-10-18 00:00:00"
AND sensors_id = 9
GROUP BY DATE_FORMAT(datetime, '%Y-%m-%d')
ORDER BY datetime DESC
我要做的是返回每个组中的最小值/最大值,其中 threshold_id 不为空。因此,该示例应返回如下内容:
min_value | max_value | start_date | end_date
9 | 10.5 | 2015-07-29 10:52:31 | 2015-07-29 10:57:31
8.5 | 9.5 | 2015-07-29 11:03:31 | 2015-07-29 11:05:31
我不知道如何进行此分组。我需要为 threshold_id 不为 NULL 的每组连续行返回最小值/最大值。
【问题讨论】:
-
您需要指定分组的内容/方式。另外,您的查询目前是什么样的?
-
我按日期时间分组,我的查询是这样的:SELECT id, DATE_FORMAT(dt, '%Y-%m-%d'), MIN(value), MAX(value) FROM Table1 WHERE dt "2015-10-18 00:00:00" AND id = 9 GROUP BY DATE_FORMAT(dt, '%Y-%m-%d' ) 按 dt DESC 排序
-
您是按日期时间分组(精确到秒)?
-
没错,真的是按天分组。
标签: mysql