Location d'appartements en groupe

[20 min]

Soit le schéma relationnel suivant gérant le fonctionnement d'une agence de location d'appartements.

APPARTEMENT(#code_appt:String, adresse:String, type:{studio,F1,F2,F3,F4,F5+}, prix_loyer:Real)
LOCATAIRE(#code_loc:String, nom:String, prenom:String)
LOCATION(#code_loc=>Locataire, #code_appt=>Appartement)
PAIEMENT_LOYER(#code_loc=>Locataire, #code_appt=>Appartement, #date_payement:Date, prix_paye:Real)

En SQL afficher le nombre d'appartements de chaque type, uniquement pour les types qui commencent par la lettre F.

SELECT COUNT(*) 
FROM appartement
WHERE type LIKE 'F%'
GROUP BY type

En SQL afficher le total payé par locataire (avec son code, nom et prenom) pour l'ensemble de ses appartements.

SELECT L.code_loc, L.nom, L.prenom, SUM(P.prix_paye)
From locataire L, paiement_loyer P
WHERE L.code_loc=P.code_loc
GROUP BY L.code_loc, L.nom, L.prenom

nom et prenom sont obligatoires dans le group by : cf Single-Value Rule.

En SQL afficher les locataires (code uniquement) qui louent au moins 2 appartements, en précisant le nombre d'appartements loués et la moyenne des loyers, et trié par ordre décroissant de cette moyenne.

SELECT L.code_loc, COUNT(A.code_appt), AVG(A.prix_loyer)
FROM location L JOIN appartement A
ON A.code_appt=L.code_appt
GROUP BY L.code_loc
HAVING COUNT(A.code_appt)>1
ORDER BY AVG(A.prix_loyer) DESC
AccueilExercices > Exercice : Location d'appartements en groupe< PrécédentSuivant >