计算日期平均值

时间:2016-04-29 19:11:43

标签: mysql sql-server

我需要在MySQL或SQL中进行查询,向我显示每日,半年和月平均值。日期是Unix格式,但它们也已转换为标准格式,如下所示。

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

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    |

当天的预期结果:

fecha       | value
2010-05-10  | 1.7
2010-05-11  | 1.9
2016-04-28  | 1.5

月份:

2010-05 | 1.7
2010-04 | 1.5

感谢您的回复。

2 个答案:

答案 0 :(得分:1)

您可以按日期分组

<div ID="menuContent" runat="server">
    <!-- #Include virtual="/menu.aspx" -->
</div>   

按月计算

SELECT DATE(FROM_UNIXTIME('fecha unix')) AS fecha,
        AVERAGE(*) AS Average
 FROM   MyPostsTable
 GROUP BY DATE(FROM_UNIXTIME('fecha unix')
 ORDER BY fecha

我认为按周计算

SELECT DATE(FROM_UNIXTIME('fecha unix')) AS fecha,
            AVERAGE(Value) AS Average
     FROM   MyPostsTable
     GROUP BY MONTH(FROM_UNIXTIME('fecha unix'))
     ORDER BY fecha;

答案 1 :(得分:0)

警告 - 未经测试,可能出现语法错误,但希望您明白这一点。

白天:

select date_format(fecha_normal, '%Y-%m-%d') fecha, avg(Value) from tbl group by 1

按月:

select date_format(fecha_normal, '%Y-%m') fecha, avg(Value) 
  from tbl group by 1

半年:

select concat(year(fecha_normal), '-', 
  if(month(fetcha_normal) < 7, 1, 2)) fecha, avg(Value) 
  from tbl group by 1

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

按年份:

select year(fecha_normal) fecha, avg(Value) from tbl group by 1