23 Exercices Sur Les Requêtes SQL Corrigé: Fonctions d’agrégation
La meilleure façon d’apprendre quelque chose est de pratiquer des exercices. Nous avons préparer ces exercices corrigés pour les personnes (débutantes ou intermédiaires) qui sont familières avec SQL. Nous espérons que ces exercices vous aideront à améliorer vos compétences en SQL. Les exercices corrigés suivantes sont actuellement disponibles, nous travaillons dur pour ajouter plus d’exercices. Bon apprentissage!
Vous pouvez lire notre tutoriel SQL avant de résoudre les exercices suivants.
Exercices Sur Les Requêtes SQL Corrigé : Fonctions d’agrégation
1. A partir du table suivante, écrivez une requête SQL pour calculer le montant total des achats de toutes les commandes. Renvoyez le montant total des achats.
Table: commandes +--------+----------------+-------------+-----------+ | cmd_id | montant_achat | date_cmd | client_id | +--------+----------------+-------------+-----------+ | 8001 | 125.02 | 2024-10-06 | 1005 | | 8002 | 60.38 | 2024-02-22 | 1005 | | 8003 | 95.65 | 2024-05-11 | 1002 | | 8004 | 59.32 | 2024-12-22 | 1006 | | 8005 | 74.33 | 2024-11-30 | 1006 | | 8006 | 188.22 | 2024-01-05 | 1003 | +--------+----------------+-------------+-----------+
2. A partir du table suivante, écrivez une requête SQL pour calculer le montant d’achat moyen de toutes les commandes. Retourner le montant moyen des achats.
Table: commandes +--------+----------------+-------------+-----------+ | cmd_id | montant_achat | date_cmd | client_id | +--------+----------------+-------------+-----------+ | 8001 | 125.02 | 2024-10-06 | 1005 | | 8002 | 60.38 | 2024-02-22 | 1005 | | 8003 | 95.65 | 2024-05-11 | 1002 | | 8004 | 59.32 | 2024-12-22 | 1006 | | 8005 | 74.33 | 2024-11-30 | 1006 | | 8006 | 188.22 | 2024-01-05 | 1003 | +--------+----------------+-------------+-----------+
3. À partir du table suivant, écrivez une requête SQL qui compte le nombre de clients uniques. Renvoyez le nombre de clients.
Table: commandes +--------+----------------+-------------+-----------+ | cmd_id | montant_achat | date_cmd | client_id | +--------+----------------+-------------+-----------+ | 8001 | 125.02 | 2024-10-06 | 1005 | | 8002 | 60.38 | 2024-02-22 | 1005 | | 8003 | 95.65 | 2024-05-11 | 1002 | | 8004 | 59.32 | 2024-12-22 | 1006 | | 8005 | 74.33 | 2024-11-30 | 1006 | | 8006 | 188.22 | 2024-01-05 | 1003 | +--------+----------------+-------------+-----------+
4. À partir du table suivant, écrivez une requête SQL pour compter le nombre de clients. Retourner le nombre de clients.
Table: clients +-----------+----------------+-------------+--------+ | client_id | nom | ville | age | +-----------+----------------+-------------+--------+ | 1001 | Alex Barbara | Paris | 25 | | 1002 | Lois Collins | Lyon | 30 | | 1005 | Karen Farley | Nice | 44 | | 1006 | Kevin Thompson | Paris | 65 | | 1007 | Scott Henry | Marseille | 32 | | 1003 | Ellen McMullen | Montpellier | 53 | +-----------+----------------+-------------+--------+
5. À partir du table suivant, écrivez une requête SQL pour compter le nombre de clients dont l’age est indiqué.
Table: clients +-----------+----------------+-------------+--------+ | client_id | nom | ville | age | +-----------+----------------+-------------+--------+ | 1001 | Alex Barbara | Paris | 25 | | 1002 | Lois Collins | Lyon | 30 | | 1005 | Karen Farley | Nice | 44 | | 1006 | Kevin Thompson | Paris | 65 | | 1007 | Scott Henry | Marseille | | | 1003 | Ellen McMullen | Montpellier | | +-----------+----------------+-------------+--------+
6. A partir du table suivant, écrivez une requête SQL pour trouver le montant maximum d’achat.
Table: commandes +--------+----------------+-------------+-----------+ | cmd_id | montant_achat | date_cmd | client_id | +--------+----------------+-------------+-----------+ | 8001 | 125.02 | 2024-10-06 | 1005 | | 8002 | 60.38 | 2024-02-22 | 1005 | | 8003 | 95.65 | 2024-05-11 | 1002 | | 8004 | 59.32 | 2024-12-22 | 1006 | | 8005 | 74.33 | 2024-11-30 | 1006 | | 8006 | 188.22 | 2024-01-05 | 1003 | +--------+----------------+-------------+-----------+
7. A partir du table suivante, écrivez une requête SQL pour trouver le montant minimum d’achat.
Table: commandes +--------+----------------+-------------+-----------+ | cmd_id | montant_achat | date_cmd | client_id | +--------+----------------+-------------+-----------+ | 8001 | 125.02 | 2024-10-06 | 1005 | | 8002 | 60.38 | 2024-02-22 | 1005 | | 8003 | 95.65 | 2024-05-11 | 1002 | | 8004 | 59.32 | 2024-12-22 | 1006 | | 8005 | 74.33 | 2024-11-30 | 1006 | | 8006 | 188.22 | 2024-01-05 | 1003 | +--------+----------------+-------------+-----------+
8. A partir du table suivante, écrivez une requête SQL pour trouver l’age le plus grand des clients dans chaque ville. Retourner ville, age maximale.
Table: clients +-----------+----------------+-------------+--------+ | client_id | nom | ville | age | +-----------+----------------+-------------+--------+ | 1001 | Alex Barbara | Paris | 25 | | 1002 | Lois Collins | Lyon | 30 | | 1002 | Bob Chamir | Lyon | 70 | | 1005 | Karen Farley | Nice | 44 | | 1006 | Kevin Thompson | Paris | 65 | | 1007 | Scott Henry | Marseille | 32 | | 1003 | Ellen McMullen | Montpellier | 53 | +-----------+----------------+-------------+--------+
9. À partir du table suivante, écrivez une requête SQL pour trouver le montant d’achat le plus élevé commandé par chaque client. Retournez l’ID du client, le montant maximum de l’achat.
Table: commandes +--------+----------------+-------------+-----------+ | cmd_id | montant_achat | date_cmd | client_id | +--------+----------------+-------------+-----------+ | 8001 | 125.02 | 2024-10-06 | 1005 | | 8002 | 60.38 | 2024-02-22 | 1005 | | 8003 | 95.65 | 2024-05-11 | 1002 | | 8004 | 59.32 | 2024-12-22 | 1006 | | 8005 | 74.33 | 2024-11-30 | 1006 | | 8006 | 188.22 | 2024-01-05 | 1003 | +--------+----------------+-------------+-----------+
10. À partir du table suivante, écrivez une requête SQL pour trouver le montant d’achat le plus élevé commandé par chaque client à une date donnée. Retournez la date de la commande et le montant d’achat le plus élevé.
Table: commandes +--------+----------------+-------------+-----------+ | cmd_id | montant_achat | date_cmd | client_id | +--------+----------------+-------------+-----------+ | 8001 | 125.02 | 2024-10-06 | 1005 | | 8002 | 60.38 | 2024-02-22 | 1005 | | 8003 | 95.65 | 2024-05-11 | 1002 | | 8004 | 59.32 | 2024-12-22 | 1006 | | 8005 | 74.33 | 2024-11-30 | 1006 | | 8006 | 188.22 | 2024-01-05 | 1003 | +--------+----------------+-------------+-----------+
11. A partir du table suivant, écrivez une requête SQL pour déterminer le montant d’achat le plus élevé effectué par chaque client le ‘2024-10-06’. Retourner l’ID du client, le montant de l’achat.
Table: commandes +--------+----------------+-------------+-----------+ | cmd_id | montant_achat | date_cmd | client_id | +--------+----------------+-------------+-----------+ | 8001 | 125.02 | 2024-10-06 | 1005 | | 8002 | 60.38 | 2024-10-06 | 1005 | | 8003 | 95.65 | 2024-05-11 | 1002 | | 8004 | 59.32 | 2024-12-22 | 1006 | | 8005 | 74.33 | 2024-11-30 | 1006 | | 8006 | 188.22 | 2024-10-06 | 1003 | +--------+----------------+-------------+-----------+
12. À partir du table suivante, écrivez une requête SQL pour trouver le montant d’achat le plus élevé pour chaque client à une date donnée. Filtrez le résultat en fonction du montant d’achat le plus élevé, supérieur à 100,00. Retournez l’identifiant du client, la date de la commande et le montant maximum de l’achat.
Table: commandes +--------+----------------+-------------+-----------+ | cmd_id | montant_achat | date_cmd | client_id | +--------+----------------+-------------+-----------+ | 8001 | 125.02 | 2024-10-06 | 1005 | | 8002 | 60.38 | 2024-02-22 | 1005 | | 8003 | 95.65 | 2024-05-11 | 1002 | | 8004 | 59.32 | 2024-12-22 | 1006 | | 8005 | 74.33 | 2024-11-30 | 1006 | | 8006 | 188.22 | 2024-01-05 | 1003 | +--------+----------------+-------------+-----------+
13. À partir du table suivant, écrivez une requête SQL pour trouver le montant d’achat le plus élevé dans l’intervalle 50 – 100 (les valeurs de début et de fin sont incluses) en fonction de chaque client et de la date de la commande. Retournez l’identifiant du client, la date de la commande et le montant maximum de l’achat.
Table: commandes +--------+----------------+-------------+-----------+ | cmd_id | montant_achat | date_cmd | client_id | +--------+----------------+-------------+-----------+ | 8001 | 125.02 | 2024-10-06 | 1005 | | 8002 | 60.38 | 2024-02-22 | 1005 | | 8003 | 95.65 | 2024-05-11 | 1002 | | 8004 | 59.32 | 2024-12-22 | 1006 | | 8005 | 74.33 | 2024-11-30 | 1006 | | 8006 | 188.22 | 2024-01-05 | 1003 | +--------+----------------+-------------+-----------+
14. À partir du table suivante, écrivez une requête SQL pour trouver le montant d’achat le plus élevé pour chaque client à une date donnée. Filtrez les lignes pour lesquelles le montant d’achat le plus élevé est soit 100, 200, 300, 400. Retournez l’identifiant du client, la date de la commande et le montant maximum de l’achat.
Table: commandes +--------+----------------+-------------+-----------+ | cmd_id | montant_achat | date_cmd | client_id | +--------+----------------+-------------+-----------+ | 8001 | 125.02 | 2024-10-06 | 1005 | | 8002 | 60.38 | 2024-02-22 | 1005 | | 8003 | 200 | 2024-05-11 | 1002 | | 8004 | 59.32 | 2024-12-22 | 1006 | | 8005 | 74.33 | 2024-11-30 | 1006 | | 8006 | 188.22 | 2024-01-05 | 1003 | +--------+----------------+-------------+-----------+
15. À partir du table suivante, écrivez une requête SQL pour déterminer le montant d’achat le plus élevé pour chaque client. L’identifiant du client doit être compris entre 1000 et 1004 (les valeurs de début et de fin sont incluses). Retournez l’identifiant du client et le montant maximum de l’achat.
Table: commandes +--------+----------------+-------------+-----------+ | cmd_id | montant_achat | date_cmd | client_id | +--------+----------------+-------------+-----------+ | 8001 | 125.02 | 2024-10-06 | 1005 | | 8002 | 60.38 | 2024-10-06 | 1004 | | 8003 | 95.65 | 2024-05-11 | 1002 | | 8004 | 59.32 | 2024-12-22 | 1006 | | 8005 | 74.33 | 2024-11-30 | 1000 | | 8006 | 188.22 | 2024-10-06 | 1000 | +--------+----------------+-------------+-----------+
16. À partir du table suivante, écrivez une requête SQL pour déterminer le montant d’achat le plus élevé pour chaque client. L’identifiant du client doit être compris entre 1000 et 1004 (les valeurs de début et de fin sont incluses). Filtrer les lignes pour lesquelles le montant maximum d’achat est inférieur à 100. Retournez l’identifiant du client et le montant maximum de l’achat.
Table: commandes +--------+----------------+-------------+-----------+ | cmd_id | montant_achat | date_cmd | client_id | +--------+----------------+-------------+-----------+ | 8001 | 125.02 | 2024-10-06 | 1005 | | 8002 | 60.38 | 2024-10-06 | 1004 | | 8003 | 95.65 | 2024-05-11 | 1002 | | 8004 | 59.32 | 2024-12-22 | 1006 | | 8005 | 74.33 | 2024-11-30 | 1000 | | 8006 | 188.22 | 2024-10-06 | 1000 | +--------+----------------+-------------+-----------+
17. A partir du table suivante, écrivez une requête SQL pour compter toutes les commandes générées le '2024-10-06'. Renvoyez le nombre de commandes.
Table: commandes +--------+----------------+-------------+-----------+ | cmd_id | montant_achat | date_cmd | client_id | +--------+----------------+-------------+-----------+ | 8001 | 125.02 | 2024-10-06 | 1005 | | 8002 | 60.38 | 2024-10-06 | 1004 | | 8003 | 95.65 | 2024-05-11 | 1002 | | 8004 | 59.32 | 2024-12-22 | 1006 | | 8005 | 74.33 | 2024-11-30 | 1000 | | 8006 | 188.22 | 2024-10-06 | 1000 | +--------+----------------+-------------+-----------+
18. A partir du table suivante, écrivez une requête SQL pour compter le nombre de clients dans une ville. Retourner le nombre de clients.
Table: clients +-----------+----------------+-------------+--------+ | client_id | nom | ville | age | +-----------+----------------+-------------+--------+ | 1001 | Alex Barbara | Paris | 25 | | 1002 | Lois Collins | Lyon | 30 | | 1005 | Karen Farley | Nice | 44 | | 1006 | Kevin Thompson | Paris | 65 | | 1007 | Scott Henry | Marseille | 32 | | 1003 | Ellen McMullen | Montpellier | 53 | +-----------+----------------+-------------+--------+
19. À partir du table suivante, écrivez une requête SQL pour compter le nombre de commandes en fonction de la combinaison de chaque date de commande et de chaque client. Retourner la date de la commande, l'identifiant du client.
Table: commandes +--------+----------------+-------------+-----------+ | cmd_id | montant_achat | date_cmd | client_id | +--------+----------------+-------------+-----------+ | 8001 | 125.02 | 2024-10-06 | 1005 | | 8002 | 60.38 | 2024-10-06 | 1004 | | 8003 | 95.65 | 2024-05-11 | 1002 | | 8004 | 59.32 | 2024-12-22 | 1006 | | 8005 | 74.33 | 2024-11-30 | 1000 | | 8006 | 188.22 | 2024-10-06 | 1000 | +--------+----------------+-------------+-----------+
20. A partir du table suivante, écrivez une requête SQL pour calculer le prix moyen des produits. Renvoyez le prix moyen du produit.
Table: produits +---------+-------------+------------+--------+ | prod_id | prod_name | prod_price | com_id | +---------+-------------+------------+--------+ | 1001 | Monitor | 150.00 | 8 | | 1002 | CPU | 250.00 | 8 | | 1003 | Keyboard | 300.00 | 6 | | 1004 | Mouse | 177.00 | 2 | | 1005 | Printer | 255.00 | 9 | | 1006 | Scanner | 270.00 | 3 | +---------+-------------+------------+--------+
21. A partir du table suivant, écrivez une requête SQL pour compter le nombre de produits dont le prix est supérieur ou égal à 250. Retourner le nombre de produits.
Table: produits +---------+-------------+------------+--------+ | prod_id | prod_name | prod_price | com_id | +---------+-------------+------------+--------+ | 1001 | Monitor | 150.00 | 8 | | 1002 | CPU | 250.00 | 8 | | 1003 | Keyboard | 300.00 | 6 | | 1004 | Mouse | 177.00 | 2 | | 1005 | Printer | 255.00 | 9 | | 1006 | Scanner | 270.00 | 3 | +---------+-------------+------------+--------+
22. À partir du table suivante, écrivez une requête SQL pour calculer le prix moyen pour des commandes uniques. Retournez le prix moyen et l'identifiant de la commande.
Table: produits +---------+-------------+------------+--------+ | prod_id | prod_name | prod_price | com_id | +---------+-------------+------------+--------+ | 1001 | Monitor | 150.00 | 8 | | 1002 | CPU | 250.00 | 8 | | 1003 | Keyboard | 300.00 | 6 | | 1004 | Mouse | 177.00 | 2 | | 1005 | Printer | 255.00 | 9 | | 1006 | Scanner | 270.00 | 3 | +---------+-------------+------------+--------+
23. A partir du table suivante, écrivez une requête SQL pour compter le nombre d'employés dans chaque département. Renvoyez le code du département et le nombre d'employés.
Table: employee +------+---------+----------+----------------+ | id | nom | prenom | departement_id | +------+---------+----------+----------------+ | 1001 | Eddie | Parker | 101 | | 1002 | Eleanor | Deas | 109 | | 1003 | Glen | Powell | 101 | | 1004 | Ali | Fawaz | 102 | | 1005 | Earl | Horn | 103 | | 1006 | Bryan | Savoy | 103 | +------+---------+----------+----------------+