Abfrage für Statistik

tattva

Grünschnabel
Hallo Leute,
habe kleines Problem:
Habe eine DB-Tabelle, in der die Geburtsdaten von Usern gespeichert werden.
Nun will ich eine Statistik machen, wie viele User aus verschiedenen Altersklassen kommen.
--> Bsp. 71 User sind zwischen 17-25 Jahre alt, 35 zwischen 26-30 Jahre alt.
Kann ich das in einer SQL-Abfrage bekommen, so dass ich gleich die "Anzahlen" für alle Altersklassen rauskriege?

Ich schaffe es im Moment nur, eine Abfrage für eine bestimmte altersklasse zu machen,.

Code:
"SELECT COUNT(birthday) AS birthday_number FROM users  
WHERE birthday BETWEEN DATE_SUB(CURDATE(),INTERVAL 25 YEAR) AND DATE_SUB(CURDATE(), INTERVAL  17 YEAR)"

aber es ist ja nicht der Sinn der Sache dann eben 5 Abfragen tzu machen, weil ich 5 Altersklassen habe.

thanx! wenn jemandem was einfällt!:)
 
Zuletzt bearbeitet:
Hallo tattva,
mir fällt dazu als erstes folgender Lösungsansatz ein:
Code:
SELECT
 COUNT(birthday) AS birthday_number
FROM
 users
GROUP BY
 CASE
  WHEN (birthday < DATE_SUB(CURDATE(), INTERVAL 75 YEAR)) THEN '75+'
  WHEN (birthday < DATE_SUB(CURDATE(), INTERVAL 50 YEAR)) THEN '50-75'
  WHEN (birthday < DATE_SUB(CURDATE(), INTERVAL 30 YEAR)) THEN '30-50'
  WHEN (birthday < DATE_SUB(CURDATE(), INTERVAL 25 YEAR)) THEN '25-30'
  WHEN (birthday < DATE_SUB(CURDATE(), INTERVAL 17 YEAR)) THEN '17-25'
  ELSE '17-'
 END
Hab's nicht ausprobiert, glaube aber, dass das funktionieren könnte.

Grüße,
Martin
 
Zuletzt bearbeitet:
Es klappt tatsächlich!

Ich habe es jetzt doch mit mehreren Abfragen gelöst. weil ich später noch ne bestimmte Ausgabe machen muss und so isses, glaub ich, doch am besten.

Trotzdem vielen Dank! Man lernt ja nie aus, kann ich bestimmt nochmal gebrauchen ;)
 

Neue Beiträge

Zurück