18. september 2006 - 21:46Der er
14 kommentarer og 1 løsning
Statistik med COUNT funktionen
Hej
Jeg har brug for at lave statistik over brugers alder i en tabel, intervallerne på alder er 18-25 og 26-33.
Tabellen skal starte med kolonne hvor intervallerne er angivet, således.
18-25 450
26-33 600
kolonnen der skal bruges til at finde alder, er "foedseldag". hvordan kan det lige løses vha. SQL. Bemærk interval kolonnen er ikke en der findes i db'en, men skal laves vha. sql.
(SELECT '18-25', COUNT(*) FROM tabel WHERE alder BETWEEN 18 AND 25) UNION (SELECT '26-33', COUNT(*) FROM tabel WHERE alder BETWEEN 26 AND 33) UNION ...
SELECT grp,COUNT(*) FROM (SELECT CASE WHEN alder BETWEEN 18 and 25 THEN '18-25' WHEN alder BETWEEN 26 AND 33 THEN '26-33' ... END AS grp FROM tabel) tmp GROUP BY grp
SELECT grp,COUNT(*) FROM (SELECT CASE WHEN YEAR(GETDATE())-YEAR(birthday)-CASE WHEN DATEPART(dy,GETDATE())<DATEPART(dy,birthday) THEN 1 ELSE 0 END BETWEEN 18 and 25 THEN '18-25' WHEN YEAR(GETDATE())-YEAR(birthday)-CASE WHEN DATEPART(dy,GETDATE())<DATEPART(dy,birthday) THEN 1 ELSE 0 END BETWEEN 26 AND 33 THEN '26-33' ... END AS grp FROM tabel) tmp GROUP BY grp
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.