グラフを作成するためにデータベースからいくつかのクエリを実行しています。必要なグラフは、1 か月あたりの一連の値の中央値です。データセット全体の中央値を取得する方法は知っていますが、何らかの理由で GROUP BY MONTH(..) で月を区切ることができないため、月ごとの中央値が返されます。
これが私が持っているデータです。ビルドの種類に関係なく、毎月の中央値を取得したいと思います。
'Development', 1013.0164, 'June'
'Development', 1170.8999, 'July'
'Development', 671.2837, 'August'
'Flash Assets', 2961.3832, 'June'
'Flash Assets', 6662.2335, 'July'
'Flash Assets', 3902.5000, 'August'
'Release', 54.5499, 'June'
'Release', 62.4832, 'July'
'Release', 398.8500, 'August'
'Repackage', 1360.0834, 'June'
'Repackage', 6286.8505, 'July'
'Repackage', 1274.7833, 'August'
'Component', 16378.0161, 'June'
'Component', 6063.5482, 'July'
'Component', 23663.2496, 'August'
'Source Diff', 1503.8834, 'June'
'Source Diff', 1051.4500, 'July'
'Source Diff', 73.7002, 'August'
これで終わりにしたいのですが、
June, XXXX
July, XXXX
August, XXXX
ありがとう。
編集: 現在のクエリ
これは、全体の中央値を取得するために現在使用しているクエリです。これを月あたりの取得に変換する方法がわかりません。
SELECT t.Data AS 'Median' FROM
(SELECT CEIL(COUNT(*)/2.0) as 'Middle', s.Data as 'Data' FROM
(SELECT bt.name as 'Labels',
SUM(TIME_TO_SEC(TIMEDIFF(bs.eventtime, b.submittime))/60.0)
AS 'Data', MONTHNAME(b.submittime) FROM builds b
JOIN buildstatuses bs ON bs.buildid = b.id
JOIN buildtypes bt ON bt.id = b.buildtype
WHERE MONTH(b.submittime) BETWEEN MONTH(CURDATE())-2 AND MONTH(CURDATE())
AND bs.status LIKE 'Started HANDLER'
GROUP BY b.buildtype, MONTH(b.submittime) ORDER BY 'Data' ) s )t;