Le prénom, nom et âge des personnages SELECT firstname, lastname, age FROM Person Le prénom, nom des personnages ainsi que leur royaume, uniquement pour ceux étant reliés à un royaume
SELECT firstname, lastname, k.name
FROM Person p
JOIN Kingdom k ON p.kingdom_id=k.id;
La même chose en incluant tous les personnages
SELECT firstname, lastname, k.name
FROM Person p
LEFT JOIN Kingdom k ON p.kingdom_id=k.id
La moyenne de l'âge des personnages
SELECT AVG(age) FROM Person;
Le nombre de personnage par royaume (inclure les royaumes n’ayant pas de personnage)
SELECT k.name, COUNT(firstname)
FROM Person p
RIGHT JOIN Kingdom k ON p.kingdom_id=k.id
GROUP BY k.name;
La moyenne de l’âge par rôle
SELECT r.role, AVG(age)
FROM Person p
JOIN Role r ON r.id=p.role_id
GROUP BY r.role;
La moyenne est un peu haute non ? Récupérer alors la moyenne de tous les personnages n’étant pas magiciens
SELECT AVG(age)
FROM Person p
LEFT JOIN Role r ON r.id=p.role_id
WHERE r.role!='magicien';
La liste de tous les personnages avec leur rôle et royaume éventuels
SELECT firstname, lastname, k.name, role FROM Person p
LEFT JOIN Kingdom k ON k.id = p.kingdom_id
LEFT JOIN Role r ON r.id=p.role_id;
Afficher les royaumes ayant au moins 2 sujets
SELECT k.name, COUNT(*) nb
FROM Person p
JOIN Kingdom k ON k.id = p.kingdom_id
GROUP BY k.name
HAVING nb>=2;