J'ai une base de données qui stocke le coût total de chaque client à chaque date à une plage de dates.
Im essayant d'accomplir les tâches suivantes: - Pour chaque jour dans la gamme de x à y
- Tracer le coût total moyen entre tous les clients pour chaque date
- Cependant, limiter les calculs coût total moyen pour les clients whos total_costs moyenne au sein de dates x à y sont> 50 $ / jour
Capture d'écran de la base de données:
Sample of "Dailies" database
Ive a tenté ci-dessus avec la requête suivante, mais a obtenu des résultats erronés (voir images ci-dessous). Ive également ci-joint un échantillon de la "quotidiens" table dans laquelle la requête fait référence.
SELECT dailies.date, dailies.cust_id, dailies.day_cost_total, dailies.date,
(SELECT avg(dailies.day_cost_total) FROM dailies WHERE dailies.day_cost_total > 50
AND dailies.date BETWEEN '2010-07-01' AND '2010-09-30' ) AS average_cost_total
FROM dailies
WHERE dailies.date BETWEEN '2010-07-01' AND '2010-09-30'
GROUP BY dailies.date ORDER BY dailies.date ASC
- SELECT dailies.date, dailies.cust_id, dailies.day_cost_total, dailies.date,
- (SELECT avg(dailies.day_cost_total) FROM dailies WHERE dailies.day_cost_total > 50
- AND dailies.date BETWEEN '2010-07-01' AND '2010-09-30' ) AS average_cost_total
- FROM dailies
- WHERE dailies.date BETWEEN '2010-07-01' AND '2010-09-30'
- GROUP BY dailies.date ORDER BY dailies.date ASC
Capture d'écran de résultats:
Results of above query.
Im essayant d'éviter d'avoir à effectuer un appel de MySQL, stocker les données dans une classe / structure, puis faire l'analyse dans un script...J'ai presque l'impression que si j'ai besoin d'une boucle dans la requête? Peut-être il ya un moyen plus efficace?
Merci!