|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre habitué
![]() Inscription : juillet 2008 Messages : 120 ![]() |
Bonjour,
Je suis en train de lire un tutoriel de dvp sur les GROUP BY, et l'exemple 5 me laisse perplexe. Je suppose qu'il s'agit de quelque chose de tout bête, mais... qui m'échappe. En effet, d'après l'exemple 3, la chambre 1 a eu 558 nuités durant l'année 1999 ; et d'après l'exemple 4, sa capacité totale est de 1095 nuités. L'exemple 5 indique alors que son taux d'occupation sur cette période est de 65.29%. Toutefois, je me serai attendu à un taux d'occupation de 100*558/1095 = 50.96%.... Dans la mesure où l'exécution de ces trois requêtes sur les données d'exemple, me retourne bien les résultats du tutoriel, j'en déduis qu'il y a quelque chose que j'interprète de travers, mais je n'arrive pas à mettre le doigt dessus. Pourriez vous m'indiquer ce qui m'échappe ? Je vous remercie par avance. |
|
|
00
|
|
|
#2 | ||
![]() ![]() Yves Développeur informatique Inscription : janvier 2007 Messages : 3 878 ![]() |
Le taux d'occupation est bien de 50.96% et la requete donnée en exemple 5 est apparemment fausse.
Le soucis vient, je pense, de la façon dont sont regroupées les 2 requêtes. En effet, il s'agit de jointures sur des requêtes avec agrégations donc une jointure sur des données virtuelles ce qui peut pervertir le résultat. Dans ce genre de situation, il faut bien faire attention à faire la jointure sur les données réelles et faire l'agrégation après. Il faut aussi faire attention à ce que les valeurs nulles soient prises en compte (en les remplaçant par 0 par exemple) si leurs présence est significatives, sinon les lignes correspondantes seront ignorées par l'agrégation. Un exemple de requete qui marche : Code :
__________________
Sevyc64 --- Le partage est notre force NON AU LANGAGE SMS & FAUTES VOLONTAIRES SUR LES FORUMS |
||
|
|
00
|
|
|
#3 |
|
Membre habitué
![]() Inscription : juillet 2008 Messages : 120 ![]() |
Merci pour ces éclaircissements !
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com