1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| -- Pour un Auteur...
WITH
UN_AUTEUR AS
(SELECT Clef_Auteur
FROM T_Auteur
WHERE Auteur_Nom = 'dugudu'),
-- je veux qu'il me sorte sa plus récente année d'activité
PLUS_RECENT AS
(SELECT L.Clef_Auteur, MAX(YEAR(DateParution)) AS LastAn
FROM T_Livre AS L
JOIN UN_AUTEUR AS S
ON L.Clef_Auteur = A.Clef_Auteur
GROUP BY L.Clef_Auteur),
-- quel le livre le plus vendu cette année,
PLUS_VENDU AS
(SELECT R.Clef_Auteur, R.LastAn, Format, COUNT(*) AS NB,
RANK() OVER(PARTITION BY Format
ORDER BY COUNT(*) DESC) AS RANG
FROM T_Vente AS V
INNER JOIN PLUS_RECENT AS R
ON V.Clef_Auteur = R.Clef_Auteur
AND R.LastAn = YEAR(DateVente)
GROUP BY R.Clef_Auteur, R.LastAn),
-- pour ensuite savoir sur quel format il c'est le plus vendu.
PLUS_VENDU_FORMAT AS
(SELECT *, RANK() OVER(ORDER BY NB DESC) AS N
FROM PLUS_VENDU
WHERE RANG = 1 )
-- résultat :
SELECT *
FROM PLUS_VENDU_FORMAT
WHERE N = 1 |
Partager