Intermédiaire
Étant donné les tables 'orders' et 'order_items' suivantes :
orders:
| order_id | customer_id |
|----------|-------------|
| 1 | 1 |
| 2 | 2 |
| 3 | 1 |
order_items:
| order_item_id | order_id | product_id | quantity |
|---------------|----------|------------|----------|
| 1 | 1 | 1 | 2 |
| 2 | 1 | 2 | 1 |
| 3 | 2 | 1 | 1 |
Quelle requête SQL permet de récupérer l'order_id et le nombre total d'articles pour chaque commande ?
Auteur: Vincent CotroStatut : PubliéeQuestion passée 1301 fois
Modifier
2
Évaluations de la communauté
Anas
09/11/2023
SELECT order_id, COUNT(*) FROM order_items GROUP BY order_id; — Cette requête compterait le nombre de lignes (entries) d'articles pour chaque commande, ce qui n'est pas la même chose que la somme des quantités de ces articles.
SELECT order_id, COUNT(order_item_id) FROM order_items GROUP BY order_id; — Semblable à la première, cette requête compterait le nombre d'identifiants d'articles par commande, qui ne correspond pas non plus à la quantité totale des produits.
SELECT order_id, COUNT(product_id) FROM order_items GROUP BY order_id; — Encore une fois, cette requête compterait le nombre de produits distincts par commande, sans tenir compte de la quantité de chaque produit.
La bonne requête est je pense :
SELECT order_id, SUM(quantity) FROM order_items GROUP BY order_id;
Merci de me corriger si je me trompe. Bon courage
Sélomé
20/12/2023
La réponse est bien SELECT order_id, SUM(quantity) FROM order_items GROUP BY order_id ?
mais dans la correction il est indiqué que c'est plutôt : SELECT order_id, COUNT(*) FROM order_items GROUP BY order_id
Quelqu'un pourrait m'expliquer en quoi avec un count(*) on peut avoir le nombre total de quantité?
Merci par avance :)
Questions similairesPlus de questions sur SQL
20
Écrire une requête SQL pour récupérer la liste des employés avec un salaire supérieur à 5100.12
Modifier une colonne dans une table SQL10
Sélectionner uniquement les valeurs distinctes d'une colonne en SQL8
Quel mot-clé SQL est utilisé pour trier le résultat d'une instruction SELECT?8
Écrire la requête SQL pour supprimer une colonne d'une table