Question du test SQL - Les bases

Écrire une requête SQL pour obtenir l'id de la commande et le nombre total d'articles pour chaque commande.

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é
developer avatar
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
developer avatar
Vincent Cotro
13/11/2023
Hello Anas, c'est bon pour moi !
developer avatar
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 :)
developer avatar
Auteur anonyme
02/01/2024
Bonjour Sélomé, merci pour ton commentaire, il y a eu une petite confusion lors de la traduction entre FR/EN qui fait que 2 réponses ont été échangées en anglais