Eth3rnit3
5/27/2019 - 7:40 PM

atelier.MD

CORRECTION ATELIER

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;