我想要一个查询,获取按天分组的最大值和最小值之间的差异。我尝试不起作用:MySQL获取选定行的最大值和最小值之间的差异
SELECT date(`date`),
(max(value) - min(value)) as value,
FROM `sub_meter_data`
where date(sub_meter_data.date) > '2012-10-01'
and sub_meterID in('58984','58985','58986','58987')
group by date(`date`);
每个sub_meter有可能是> 3000的值,但只能通过< 10每天不同。我想要的差异,即结果< 10.通过上面的查询,我得到的结果> 3000。
下面的查询,只选择一个米,并给出正确的结果,最大值(17531),最小值(17523)和差值(8)。
SELECT date(sub_meter_data.date) as date,
max(value) as max_meter,
min(value) as min_meter,
max(value) - min(value) as diff,
FROM `sub_meter_data`
where date(sub_meter_data.date) > '2012-10-01'
and sub_meterID in('57636')
group by date(sub_meter_data.date)
但添加另一个米到条款,给出一个坏的结果,最大为17531,和最小是3021,该差异是14510.但我想每个流量计的差异,然后相加。
SELECT date(sub_meter_data.date) as date,
max(value) as max_meter,
min(value) as min_meter,
max(value) - min(value) as diff,
FROM `sub_meter_data`
where date(sub_meter_data.date) > '2012-10-01'
and sub_meterID in('57636', '57628')
group by date(sub_meter_data.date)
我已经试过另一种尝试:
SELECT date(sub_meter_data.date) as date,
sum(CASE WHEN sub_meterID = '57628' OR sub_meterID = '57636' THEN (max(value) - min(value)) ELSE 0 END) as value
FROM `sub_meter_data`
where date(sub_meter_data.date) > '2012-10-01'
相关:http://stackoverflow.com/questions/4152781/sql-max-and-min-time-between-two-fields-changing ?rq = 1 http://stackoverflow.com/questions/8072231/mysql-how-to-select-minium-and-maximum-in-one-union-query?rq=1 – twodayslate
什么是不适合你的查询?错误消息,无效数据?你能提供一个答案的例子吗? – doublesharp
我得到一个结果,但数字太高。我会详细介绍上面的预期结果。 – user1745767