Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Atelier - Fonctions de calculs

APERTO-NOTA

Exercices : Utilisation des fonctions de calculs

1. Calculer les revenus totaux des employés

Solution to Exercise #
SELECT 
    SUM(e.salaire) + SUM(e.commission) AS "total revenus"
FROM 
    employes e;

2. Calculer la moyenne des salaires et des commissions

Solution to Exercise #
SELECT 
    ROUND(AVG(e.salaire), 2) AS "moyenne salaire",
    ROUND(AVG(COALESCE(e.commission, 0)), 2) AS "moyenne commission"
FROM 
    employes e;

3. Calculer le salaire maximum et la plus petite commission

Solution to Exercise #
SELECT 
    MAX(salaire) AS "plus grand salaire",
    MIN(commission) AS "plus petite commission"
FROM 
    employes;

4. Compter les fonctions distinctes

Solution to Exercise #
SELECT 
    COUNT(DISTINCT fonction)
FROM 
    employes;

5. Calculer la masse salariale par fonction

Solution to Exercise #
SELECT 
    fonction, 
    SUM(salaire) AS "masse salariale"
FROM 
    employes
GROUP BY 
    fonction;

6. Calculer le total des commandes avec plus de 5 références

Solution to Exercise #
SELECT 
    no_commande,
    SUM(prix_unitaire * quantite) AS "total"
FROM 
    details_commandes
GROUP BY 
    no_commande
HAVING 
    COUNT(ref_produit) > 5;

7. Calculer la valeur des produits en stock et commandés par fournisseur

Solution to Exercise #
SELECT 
    no_fournisseur,
    SUM(prix_unitaire * unites_stock) AS "valeur stock",
    SUM(prix_unitaire * unites_commandees) AS "valeur commandes"
FROM 
    produits
WHERE 
    no_fournisseur BETWEEN 3 AND 6
GROUP BY 
    no_fournisseur;

8. Calculer le total des ventes par mois

Solution to Exercise #
SELECT 
    DATE_TRUNC('month', c.date_commande) AS "mois", 
    SUM(dc.prix_unitaire * dc.quantite * (1 - dc.remise)) AS "total ventes"
FROM 
    commandes c
JOIN 
    details_commandes dc ON c.no_commande = dc.no_commande
GROUP BY 
    DATE_TRUNC('month', c.date_commande);