2016-04-29 26 views
0

MySQLまたはSQLで、毎日、半年、毎月の平均を表示するクエリを作成する必要があります。日付はUnix形式ですが、以下のように標準形式に変換されています。日付の平均を計算する

私は、次の表持つ(fecha UNIX - Unixの日付、fechaノーマル - 定期的な日付、ノンブル - 名):1日のために

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 

ご回答いただきありがとうございます。

+1

ポル賛成、芳賀SU preguntaエン[es.stackoverflow.com](http://es.stackoverflow.com/)O AQUIペロエンイングレス。 – wchiquito

+0

質問はスペイン語で行われました。 –

答えて

1

あなたはそう

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

のような月のことでとても

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 WEEK(FROM_UNIXTIME('fecha unix')) 
     ORDER BY fecha; 
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関数ロジックと組み合わせた特別なフォーマットを使用することです(もしあれば)年の最初の半分の年の文字列を構築し、2番目の年の文字列を作成します。年によって

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