sub-query, join ou autre.
Bonjour,
j'ai une table avec des données qui sont inséré tout les jours, avec la date du jour dans "created", chaque jour il y à la "population" qui change dans la table pour chaque village, et il me faut dans la requête, le delta du j et j-1 de la population, j'ai fait deux sous-requête pour ça : une requête qui ramène la population du jour j, une autre qui ramène la population du jour j-1, et je fait le delta, est ce que ça serait mieux de faire ça avec des "join" ou les sous requête sont viable ou si vous avez un moyen plus optimisé je suis preneur.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| SELECT x.aid, x.vid, x.village, x.population, d.delta
FROM
(
SELECT TO_DAYS(MAX(created)) AS mx
FROM x_world
) s,
(
SELECT min.vid, min.village, (max.population - min.population) delta
FROM
(
SELECT vid, village, population
FROM
(
SELECT TO_DAYS(MAX(created))-1 AS mx
FROM x_world
) s, x_world x
WHERE player = %s
AND TO_DAYS(x.created) = s.mx
) min,
(
SELECT vid, village, population
FROM
(
SELECT TO_DAYS(MAX(created)) AS mx
FROM x_world
) s, x_world x
WHERE player = %s
AND TO_DAYS(x.created) = s.mx
) max
WHERE min.vid = max.vid
) d, x_world x
WHERE player = %s
AND TO_DAYS(x.created) = s.mx
AND x.vid = d.vid |
Merci d'avance :ccool: