1 つのテーブル内の 1 つの列 (value_to_count) から 3 つの異なる平均値を取得したいと考えています。これらの平均値はすべて、(時間に応じて) 異なる WHERE 句を持ちます。
サンプルデータ:
###services#### Table
service_id value_to_count time
----------- ----------------------- ---------
604 2054 04:04:50
604 3444 05:00:15
604 2122 07:12:50
604 2144 09:10:50
604 2001 13:12:53
602 2011 15:00:12
602 2115 17:22:35
602 1411 20:22:12
602 1611 21:04:52
602 2111 23:43:45
現在、このクエリを使用して、18 から 23 までの時間の平均値を取得しています。
クエリ
SELECT
service_id AS service, AVG(value_to_count) AS primetime
FROM services
WHERE HOUR(time) BETWEEN 18 AND 23
GROUP BY service_id
そして、それは私にこの種の結果を与えます:
### Result ####
service primetime
----------- --------------
604 2154
602 2444
ここで、すでに取得した平均値の隣にある他の平均値を取得したいと考えています。今回は、「HOUR(time) BETWEEN 06 AND 18」と「HOUR(time) BETWEEN 23 AND 06」で平均を取得したいだけです。
これは私が取得したい結果の形式です:
### Wanted Result ####
service primetime other_time_interval_1 other_time_interval_2
----------- -------------- ---------------- ------------------
604 2154 2352 1842
602 2444 4122 1224