首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL依次选择group by date、arithmetic和sum results

MySQL依次选择group by date、arithmetic和sum results
EN

Stack Overflow用户
提问于 2012-10-19 10:27:31
回答 1查看 639关注 0票数 0

我有一个只有三列的表,ID,DATETIME,VALUE

每个DATETIME来自一天中的不同样本,来自不同的仪表。

我需要对每个值执行一个数学函数,例如。(值* 60 * 10)/1000000 = new_value,然后按日期(Datetime)对new_value进行分组,并对每个日期的值求和,然后对选定的一组ID执行此操作。

我需要的结果是每个日期,以及这些米的总和。

我试过了:

代码语言:javascript
复制
SELECT date(sub_meter_data.date) as date, 
sum(CASE WHEN sub_meterID = '58984' OR '58985' OR '58986' OR '58987' THEN (((value*60)*10)/1000000) ELSE 0 END) as value
FROM `sub_meter_data` WHERE
date(sub_meter_data.date) > '2012-10-01'
GROUP BY date(sub_meter_data.date)

以下是一些示例数据:

代码语言:javascript
复制
sub_meterID       date           value
58984     2012-10-18 23:23:05.000   94.82643
58982     2012-10-18 23:28:52.000   97.43638
58984     2012-10-18 23:33:04.000   100.1923
58985     2012-10-18 23:43:01.000   97.93111
58984     2012-10-18 23:53:05.000   93.02759
58986     2012-10-19 00:03:03.000   88.29563
58984     2012-10-19 00:13:02.000   81.23074
58987     2012-10-19 00:23:07.000   86.37943
58984     2012-10-19 00:33:04.000   88.64834
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-19 11:30:01

请在下面尝试:

代码语言:javascript
复制
SELECT date(`date`), 
       sum(((value*60)*10)/1000000) 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`);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12966524

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档