Ich möchte drei verschiedene Durchschnittswerte aus einer Spalte (value_to_count) in einer Tabelle abrufen, wobei jeder dieser Durchschnittswerte eine andere WHERE-Klausel hat (je nach Zeit).
Beispielhafte Daten:
###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
Ich verwende diese Abfrage im Moment, um den Durchschnittswert der Zeit zwischen 18 und 23 zu ermitteln:
Abfrage
SELECT
service_id AS service, AVG(value_to_count) AS primetime
FROM services
WHERE HOUR(time) BETWEEN 18 AND 23
GROUP BY service_id
Und ich erhalte diese Art von Ergebnissen:
### Result ####
service primetime
----------- --------------
604 2154
602 2444
Nun möchte ich neben dem bereits ermittelten Durchschnittswert weitere Werte erhalten. Diesmal möchte ich nur die Durchschnittswerte für "STUNDE(Zeit) ZWISCHEN 06 UND 18" und "STUNDE(Zeit) ZWISCHEN 23 UND 06" abrufen.
Das ist die Form des Ergebnisses, die ich erreichen möchte:
### Wanted Result ####
service primetime other_time_interval_1 other_time_interval_2
----------- -------------- ---------------- ------------------
604 2154 2352 1842
602 2444 4122 1224