首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >计算日期平均值

计算日期平均值
EN

Stack Overflow用户
提问于 2016-04-30 03:11:43
回答 2查看 42关注 0票数 0

我需要执行一个查询,以MySQL或SQL语言显示每天、半年和每月的平均值。日期采用Unix格式,但也已转换为标准格式,如下所示。

我有下表(fecha unix - Unix date,fecha normal - regular date,Nombre - name):

代码语言:javascript
运行
复制
Nombre          | fecha unix| fecha normal          |value  |
JOHANNA ANDREA  |1273533527 |2010-05-10 19:18:47    |1.2    |
ANA MARIA       |1273533572 |2010-05-10 19:19:32    |2.0    |
CARLOS MANUEL   |1273542938 |2010-05-10 21:55:38    |2.0    |
LEONARDO ANGEL  |1273543988 |2010-05-10 22:13:08    |1.6    |
PATRICIO HERNAN |1273546656 |2010-05-10 22:57:36    |1.8    |
LILIAN CECILIA  |1273585499 |2010-05-11 09:44:59    |2.0    |
ROSA MERCEDES   |1273590042 |2010-05-11 11:00:42    |1.8    |
GABRIEL TORO    |1461837600 |2016-04-28 07:00:00    |1.2    |
FELIPE RUIZ     |1461837680 |2016-04-28 07:01:20    |1.6    |
CARLOS TAPIA    |1461847680 |2016-04-28 09:48:00    |1.8    |

当天的预期结果:

代码语言:javascript
运行
复制
fecha       | value
2010-05-10  | 1.7
2010-05-11  | 1.9
2016-04-28  | 1.5

当月:

代码语言:javascript
运行
复制
2010-05 | 1.7
2010-04 | 1.5

感谢您的回复。

EN

回答 2

Stack Overflow用户

发布于 2016-04-30 03:32:17

您可以像这样按日期分组

代码语言:javascript
运行
复制
SELECT DATE(FROM_UNIXTIME('fecha unix')) AS fecha,
        AVERAGE(*) AS Average
 FROM   MyPostsTable
 GROUP BY DATE(FROM_UNIXTIME('fecha unix')
 ORDER BY fecha

就像这样按月

代码语言:javascript
运行
复制
SELECT DATE(FROM_UNIXTIME('fecha unix')) AS fecha,
            AVERAGE(Value) AS Average
     FROM   MyPostsTable
     GROUP BY MONTH(FROM_UNIXTIME('fecha unix'))
     ORDER BY fecha;

我想每周都是这样

代码语言:javascript
运行
复制
SELECT DATE(FROM_UNIXTIME('fecha unix')) AS fecha,
                AVERAGE(Value) AS Average
         FROM   MyPostsTable
         GROUP BY WEEK(FROM_UNIXTIME('fecha unix'))
         ORDER BY fecha;
票数 1
EN

Stack Overflow用户

发布于 2016-04-30 03:40:42

警告-未经测试,可能会出现语法错误,但希望您能理解。

白天:

代码语言:javascript
运行
复制
select date_format(fecha_normal, '%Y-%m-%d') fecha, avg(Value) from tbl group by 1

按月:

代码语言:javascript
运行
复制
select date_format(fecha_normal, '%Y-%m') fecha, avg(Value) 
  from tbl group by 1

按半年计算:

代码语言:javascript
运行
复制
select concat(year(fecha_normal), '-', 
  if(month(fetcha_normal) < 7, 1, 2)) fecha, avg(Value) 
  from tbl group by 1

这里的想法是,我们使用特殊的格式化结合SQL函数逻辑(if)来构造上半年的year-1字符串,以及第二年的year-2字符串。

按年份排列:

代码语言:javascript
运行
复制
select year(fecha_normal) fecha, avg(Value) from tbl group by 1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36945856

复制
相关文章

相似问题

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