2017-01-12 12 views
1

次のように私は、SQLクエリを持っている:平均 - Mysqlの

次のように結果を返します
SELECT COUNT(*) 
FROM event_db.event_log el, event_db.event_type et 
WHERE et.event_type_id = el.event_type_id AND et.name in ('kpi_stats_dumped') AND el.timestamp > str_to_date('2016,12,12','%Y,%m,%d') AND el.timestamp < str_to_date('2017,12,12','%Y,%m,%d') 
GROUP BY et.name, date_format(el.timestamp, '%d-%m-%Y') 
ORDER BY et.name, el.timestamp 

1440 
1441 
1546 
1234 
1235 
33 
224 

私が列挙された値の平均値を見つける必要があります。 (1021.85714286)

誰かが同じことを手伝うことができますか?次のように

+2

をこの '選択AVG(CNT)のように(SELECT COUNT(*)からevent_db.event_logエルからCNTとして... )tmp' –

+0

Pythonでこれを行うには、既存の質問があります:http://stackoverflow.com/questions/7716331/calculating-arithmetic-mean-average-in-python – doctorlove

+0

これを行うにはmysqlクエリが必要です – sathis

答えて

0

私は答えを得た、今、クエリは次のとおりです。

SELECT avg(cnt) from 
(SELECT count(*) as cnt 
FROM event_db.event_log el , 
     event_db.event_type et 
WHERE et.event_type_id = el.event_type_id 
     AND et.name IN ('kpi_stats_dumped') 
     AND el.timestamp > str_to_date('2016,12,12', '%Y,%m,%d') 
     AND el.timestamp < str_to_date('2017,12,12', '%Y,%m,%d') 
GROUP BY et.name , date_format(el.timestamp, '%d-%m-%Y') 
ORDER BY et.name, el.timestamp) tmp 
1
select avg(cnt) as average_count 
from 
(
    SELECT COUNT(*) as cnt 
    FROM event_db.event_log el 
    JOIN event_db.event_type et ON et.event_type_id = el.event_type_id 
    WHERE et.name in ('kpi_stats_dumped') 
    AND el.timestamp > str_to_date('2016,12,12','%Y,%m,%d') 
    AND el.timestamp < str_to_date('2017,12,12','%Y,%m,%d') 
    GROUP BY et.name, date_format(el.timestamp, '%d-%m-%Y') 
) tmp 
+1

サブクエリ(ここでは値の取得と設定に必要なヒントオーダー)は不要で、おそらくperforマンスの問題。 – Kleskowy