Files
ArtStudies/M2/SQL/DANJOU_Arthur.sql

101 lines
2.9 KiB
SQL

--- EXERCICE 1 ---
-- Question 1.1
SELECT Titre, MIN(Prix) AS 'Prix Minimum' FROM Conference;
-- Question 1.2
SELECT c.Titre FROM Conference c
WHERE EXISTS (SELECT * FROM Inscription i WHERE i.IDConf = c.IDConf) AND c.Titre LIKE '%Data%';
-- Question 1.4
SELECT o.NomOrateur FROM Orateur o
JOIN Inscription i ON o.IDOr = i.IDOr
WHERE i.DateIns < '2025-01-20'
GROUP BY o.NomOrateur
HAVING COUNT(i.IDConf) >= 3;
-- Question 1.4
SELECT c.Titre, c.DateConf, COUNT(i.IDOr) AS 'Nombre d''Orateurs inscrits' FROM Conference c
JOIN Inscription i ON i.IDConf = c.IdConf
GROUP BY c.Titre, c.DateConf
ORDER BY c.DateConf ASC;
-- Question 1.5
SELECT o.NomOrateur, SUM(c.Prix) AS 'Prix Total payé' FROM Orateur o
JOIN Inscription i ON o.IDOr = i.IDOr
JOIN Conference c ON c.IDConf = i.IDConf
GROUP BY o.NomOrateur
ORDER BY SUM(c.Prix) DESC;
-- Question 1.6
SELECT o.NomOrateur, MIN(c.Prix) AS 'Prix minimal payé' , MAX(c.Prix) AS 'Prix maximal payé' FROM Orateur o
JOIN Inscription i ON o.IDOr = i.IDOr
JOIN Conference c ON c.IDConf = i.IDConf
GROUP BY o.NomOrateur;
-- Question 1.7
SELECT c.Titre FROM Conference c
JOIN Inscription i ON i.IDConf = c.IDConf
JOIN Orateur o ON o.IDOr = i.IDOr
WHERE o.NomOrateur = 'Jean Dupont'
ORDER BY c.Titre ASC;
-- Question 1.8
SELECT o.NomOrateur FROM Orateur o
WHERE NOT EXISTS (
SELECT * FROM Conference c WHERE NOT EXISTS (
SELECT * FROM Inscription i WHERE i.IDConf = c.IDConf AND o.IDOr = i.IDOr
) AND C.DateConf = '2025-03-15'
);
--- EXERCICE 2 ---
-- Question 2.1
SELECT COUNT(*) AS 'NombreMusees' FROM Musee;
-- Question 2.2
SELECT m.nom, m.ville, COUNT(o.ido) AS 'NombreOeuvres' FROM Musee m
JOIN Collection c ON m.idm = c.idm
JOIN Oeuvre o ON o.idc = c.idc
GROUP BY m.nom, m.ville
HAVING COUNT(o.ido) >= 4;
-- Question 2.3
SELECT o.titre, o.artiste, o.annee FROM Oeuvre o
JOIN Collection c ON o.idc = c.idc
JOIN Musee m ON c.idm = m.idm
WHERE m.ville = 'Paris'
ORDER BY o.annee ASC;
-- Question 2.4
SELECT AVG(o.prix_estime) AS 'Prix moyen des oeuvres de Pablo Picasso' FROM Oeuvre o
WHERE o.artiste = 'Pablo Picasso';
-- Question 2.5
SELECT m.nom, COUNT(o.ido) AS 'Nombre d''oeuvres dont le prix est estimé à plus d''1 million d''euros' FROM Musee m
JOIN Collection c ON m.idm = c.idm
JOIN Oeuvre o ON c.idc = o.idc
WHERE o.prix_estime > 1000000
GROUP BY m.nom;
-- Question 2.6
SELECT m.nom, MIN(o.prix_estime) AS 'Prix estimé minimal', MAX(o.prix_estime) AS 'Prix estimé maximal' FROM Musee m
JOIN Collection c ON m.idm = c.idm
JOIN Oeuvre o ON c.idc = o.idc
GROUP BY m.nom;
-- Question 2.7
-- SELECT AVG(prix_estime) AS 'Moyenne des prix estimés de toutes les oeuvres' FROM Oeuvre;
SELECT o.titre, o.prix_estime FROM Oeuvre o
WHERE o.prix_estime >= (SELECT AVG(prix_estime) FROM Oeuvre)
ORDER BY o.titre ASC;
-- Question 2.8
SELECT m.nom FROM Musee m
WHERE NOT EXISTS (
SELECT * FROM Oeuvre o WHERE NOT EXISTS (
SELECT * FROM Collection c
WHERE c.idc = o.idc AND c.idm = m.idm
) AND o.annee > 1950
)