J'ai une requête qui prend des données moyennes (prix) de 7 jours de la semaine pour un long intervalle. IE prix moyen pour lundi, mar, etc. Cela fonctionne bien, mais je ne suis pas sûr de savoir comment je peux dans la même requête somme les avgs que cette requête trouve? En l'état cette requête résume l'ensemble de tous les prix ... IE nombre énorme .. pas de la moyenne.sql somme ou fonction d'agrégat sur colonne pré-usine avec requête complexe
Des idées? BTW est de ce Postgres ... Merci
SELECT rooms.name, rooms.id,
MAX(CASE WHEN (EXTRACT(DOW FROM availables.bookdate) - EXTRACT(DOW FROM DATE '2009-12-13')) = 0 THEN (availables.price) ELSE 0 END) AS day1,
MAX(CASE WHEN (EXTRACT(DOW FROM availables.bookdate) - EXTRACT(DOW FROM DATE '2009-12-13')) = 1 THEN (availables.price) ELSE 0 END) AS day2,
MAX(CASE WHEN (EXTRACT(DOW FROM availables.bookdate) - EXTRACT(DOW FROM DATE '2009-12-13')) = 2 THEN (availables.price) ELSE 0 END) AS day3,
MAX(CASE WHEN (EXTRACT(DOW FROM availables.bookdate) - EXTRACT(DOW FROM DATE '2009-12-13')) = 3 THEN (availables.price) ELSE 0 END) AS day4,
MAX(CASE WHEN (EXTRACT(DOW FROM availables.bookdate) - EXTRACT(DOW FROM DATE '2009-12-13')) = 4 THEN (availables.price) ELSE 0 END) AS day5,
(AVG(availables.price)) AS avg,
(SUM(availables.price)) AS sum, MAX((SIGN(spots)-1) + 1) AS beds
FROM availables
INNER JOIN rooms
ON availables.room_id=rooms.id
WHERE availables.room_id = '1780' AND availables.price > 0
GROUP BY rooms.id, rooms.name