
-- Sélectionner le nombre de films par réalisateur
SELECT realisateurs.nom, COUNT(*) AS nb_films
  FROM realisateurs
       LEFT JOIN films
              ON realisateurs.id = films.idRealisateur
GROUP BY realisateurs.nom;

-- Sélectionner les réalisateurs ayant au moins 2 films
SELECT realisateurs.nom
  FROM realisateurs
       INNER JOIN films
               ON realisateurs.id = films.idRealisateur
GROUP BY realisateurs.nom
HAVING COUNT(*) > 1;

/* Exercices : */
-- 1. Calculer la valeur du stock global
SELECT ROUND(SUM(boutique.prix * boutique.quantite) / 100, 2) as total
  FROM boutique;

--2. Calculer la moyenne du prix des articles
SELECT ROUND(AVG(prix) / 100, 2) as moyennePrix
  FROM boutique;

--3. Retourner les articles plus chers que la moyenne du prix des articles
SELECT *
  FROM boutique
 WHERE ROUND(boutique.prix / 100, 2) > (
     SELECT ROUND(AVG(boutique.prix) / 100, 2) as moyenne
       FROM boutique
 );

--4. Retourner le plus vieux film (titre et annee) de chaque realisateur (nom)
SELECT realisateurs.nom, films.titre, films.annee
  FROM films
       INNER JOIN realisateurs ON realisateurs.id = films.idRealisateur
       INNER JOIN (
           SELECT idRealisateur, MIN(annee) annee
             FROM films
         GROUP BY idRealisateur
       ) a ON a.annee = films.annee AND a.idRealisateur = films.idRealisateur
;
