私はMySQLを使用しています。私は、次の形式でデータを持っている - 私は指定された日付範囲のための訪問の種類ごとのページあたりの平均ページロード時間を生成しようとしているMySQl - AVG(AVG IF)&グループ
DATE , PAGE , PAGE_LOAD_DURATION , VISIT_TYPE
01-01-15 , A , 6 , AM
01-01-15 , B , 4 , PM
01-01-15 , C , 5 , AM
01-01-15 , D , 4 , AM
02-01-15 , B , 13 , PM
03-01-15 , C , 15 , PM
04-01-15 , A , 17 , PM
05-01-15 , A , 34 , PM
06-01-15 , B , 56 , AM
07-01-15 , C , 12 , AM
08-01-15 , D , 89 , AM
09-01-15 , B , 34 , AM
10-01-15 , R , 12 , PM
11-01-15 , T , 56 , AM
12-01-15 , E , 78 , PM
13-01-15 , B , 90 , AM
14-01-15 , A , 34 , PM
15-01-15 , A , 56 , AM
16-01-15 , B , 23 , AM
17-01-15 , A , 15 , PM
18-01-15 , R , 17 , AM
19-01-15 , Y , 37 , PM
20-01-15 , C , 23 , AM
私は、出力を生成したいのですが次の形式 -
select
PAGE,
SUM(IF(VISIT_TYPE = 'AM',AVERAGE_PAGE_LOAD_DUR,0)) AS SUM_AM,
SUM(IF(VISIT_TYPE = 'PM',AVERAGE_PAGE_LOAD_DUR,0)) AS SUM_PM
from
PAGE_VISITS
where
DATE >= '01-01-15' and DATE <= '09-01-15'
group by
PAGE
-
PAGE, VISIT_TYPE, AVERAGE_PAGE_LOAD_DUR
A, AM, average_page_load_dur
A, PM, average_page_load_dur
B, AM, average_page_load_dur
B, PM, average_page_load_dur
C, AM, average_page_load_dur
C, PM, average_page_load_dur
D, AM, average_page_load_dur
D, PM, average_page_load_dur
so on
ではなく、平均の合計を計算するには、私は以下のクエリを使用します0
平均を計算するには、私はSUMをAVGに置き換えましたが、すべての行がスキャンされて平均が計算されているので正しい方法ではないように見えますが、これはうまくいくと思います。他の場合は私を修正してください)
select
PAGE,
AVG(IF(VISIT_TYPE = 'AM',AVERAGE_PAGE_LOAD_DUR,0)) AS SUM_AM,
AVG(IF(VISIT_TYPE = 'PM',AVERAGE_PAGE_LOAD_DUR,0)) AS SUM_PM
from
PAGE_VISITS
where
DATE >= '01-01-15' and DATE <= '09-01-15'
group by
PAGE
どうすれば平均を働かせることができますか?
1.ストア日付日付として。 – Strawberry