next up previous
Next: {`A} propos de ce Up: Requêtes SQL Previous: Négation

Fonctions de groupe

1.
Total des places dans les salles du Rex.


Solution :

SELECT sum (capacite)
FROM   salle
WHERE  nom_cinema = 'Rex';
Resultat:
SUM(CAPACITE)
-------------
          410


2.
Année du film le plus ancien et du film le plus récent.


Solution :

SELECT MIN (annee), MAX (annee)
FROM   film;
Resultat:
MIN(ANNEE) MAX(ANNEE)
---------- ----------
      1926       1995


3.
Total des places offertes par cinéma.


Solution :

SELECT nom_cinema, sum (capacite)
FROM   salle
GROUP BY  nom_cinema;
Resultat:
NOM_CINEMA SUM(CAPACITE)
---------- -------------
Halles               195
Kino                 400
Nations              280
Rex                  410


4.
Nom et prénom des réalisateurs, et nombre de films qu'ils ont tournés.


Solution :

SELECT nom, prenom, count (titre)
FROM   artiste a, film f
WHERE   f.nom_realisateur = a.nom
GROUP BY  nom, prenom;


5.
$^{(\clubsuit)}$Nom des cinémas ayant plus de 1 salle climatisée.


Solution :

SELECT nom_cinema, count(*)
FROM   salle
WHERE  climatise = 'O'
GROUP BY nom_cinema
HAVING  count (*) > 1;
Résultat: le Rex


6.
$^{(\clubsuit)}$ Les artistes (nom, prénom) ayant joué au moins dans trois films depuis 1985, dont au moins un passe a l'affiche a Paris (donner ausssi le nombre de films).


Solution :

SELECT nom, prenom , count(*)
FROM   artiste, role, film
WHERE  nom = role.nom_acteur
AND    EXISTS  (SELECT 'x' FROM seance s , film f, role r
                WHERE  s.id_film = f.id_film
         AND    r.id_film = f.id_film
                AND    r.nom_acteur = artiste.nom)
AND     role.id_film = film.id_film
AND     film.annee > 1985
GROUP BY nom, prenom
HAVING  count (*) >= 3;
Résultat: Bruce Willis!




Philippe Rigaux
2000-02-03