Nombre cumulé
Un exemple suggéré par une question sur un forum : Comment obtenir un nombre cumulé d'abonnements par mois, en se basant sur un id unique d'abonnements :
CREATE TABLE #abonnement (AbonnementId int primary key, dateAbo smalldatetime) INSERT INTO #abonnement (AbonnementId, dateAbo) VALUES (1, '20060401') INSERT INTO #abonnement (AbonnementId, dateAbo) VALUES (10,'20060410') INSERT INTO #abonnement (AbonnementId, dateAbo) VALUES (6, '20060521') INSERT INTO #abonnement (AbonnementId, dateAbo) VALUES (4, '20060601') INSERT INTO #abonnement (AbonnementId, dateAbo) VALUES (7, '20060611') INSERT INTO #abonnement (AbonnementId, dateAbo) VALUES (2, '20060612') GO SELECT YEAR(a1.dateAbo) AS Annee, MONTH(a1.dateAbo) AS Mois, COUNT(DISTINCT a2.AbonnementId) AS NombreCumule FROM #abonnement a1 JOIN #abonnement a2 ON CONVERT(char(6), a1.dateAbo, 112) >= CONVERT(char(6), a2.dateAbo, 112) GROUP BY YEAR(a1.dateAbo), MONTH(a1.dateAbo) ORDER BY YEAR(a1.dateAbo), MONTH(a1.dateAbo) GO DROP TABLE #abonnement
sql_server/snippets/avance.txt · Dernière modification: 2006/08/03 18:30 (édition externe)



