Bases des bases de données
Une table Vente(Magasin, Montant) contient 7 lignes : (A, 500), (A, 700), (B, 300), (B, 400), (C, 1200), (D, 200), (D, 900). Combien de lignes renvoie SELECT Magasin, SUM(Montant) FROM Vente GROUP BY Magasin HAVING SUM(Montant) >= 1000 ?
- A1 ligne
- B3 lignes
- C4 lignes
Afficher la réponse et l'explication
Réponse : B. 3 lignes
GROUP BY Magasin regroupe les lignes par magasin en 4 groupes, dont les totaux sont A = 500 + 700 = 1200, B = 300 + 400 = 700, C = 1200 et D = 200 + 900 = 1100. HAVING SUM(Montant) >= 1000 ne garde que les groupes dont le total est supérieur ou égal à 1000 ; le résultat compte donc 3 lignes : A, C et D. 1 ligne est le résultat d'une sélection sur le montant de chaque ligne avant regroupement, comme avec WHERE Montant >= 1000 (C uniquement). 4 lignes est le nombre de groupes sans HAVING.
Continuer : 9 autres questions sur Bases des bases de données