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 890 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
15
Écrire une requête SQL pour récupérer la liste des employés avec un salaire supérieur à 5100.8
Sélectionner uniquement les valeurs distinctes d'une colonne en SQL8
Modifier une colonne dans une table SQL7
Écrire la requête SQL pour supprimer une colonne d'une table6
Écrire une requête SQL pour insérer des données dans une table