Si suppone che si abbia bisogno di distinguere range di 5 anni. Il codice risulterà questo:
(SELECT
SUM(CASE WHEN data_nascita < NOW() THEN 1 END) AS tutti,
SUM(CASE WHEN DATE_ADD(data_nascita, INTERVAL '5' YEAR) < NOW() AND DATE_ADD(data_nascita, INTERVAL '10' YEAR) >= NOW() THEN 1 ELSE 0 END) AS 5_9,
SUM(CASE WHEN DATE_ADD(data_nascita, INTERVAL '10' YEAR) < NOW() AND DATE_ADD(data_nascita, INTERVAL '15' YEAR) >= NOW() THEN 1 ELSE 0 END) AS 10_14,
SUM(CASE WHEN DATE_ADD(data_nascita, INTERVAL '15' YEAR) < NOW() AND DATE_ADD(data_nascita, INTERVAL '20' YEAR) >= NOW() THEN 1 ELSE 0 END) AS 15_19,
SUM(CASE WHEN DATE_ADD(data_nascita, INTERVAL '20' YEAR) < NOW() AND DATE_ADD(data_nascita, INTERVAL '25' YEAR) >= NOW() THEN 1 ELSE 0 END) AS 20_24,
SUM(CASE WHEN DATE_ADD(data_nascita, INTERVAL '25' YEAR) < NOW() AND DATE_ADD(data_nascita, INTERVAL '30' YEAR) >= NOW() THEN 1 ELSE 0 END) AS 25_29,
SUM(CASE WHEN DATE_ADD(data_nascita, INTERVAL '30' YEAR) < NOW() AND DATE_ADD(data_nascita, INTERVAL '35' YEAR) >= NOW() THEN 1 ELSE 0 END) AS 30_34,
SUM(CASE WHEN DATE_ADD(data_nascita, INTERVAL '35' YEAR) < NOW() AND DATE_ADD(data_nascita, INTERVAL '40' YEAR) >= NOW() THEN 1 ELSE 0 END) AS 35_39,
SUM(CASE WHEN DATE_ADD(data_nascita, INTERVAL '40' YEAR) < NOW() AND DATE_ADD(data_nascita, INTERVAL '45' YEAR) >= NOW() THEN 1 ELSE 0 END) AS 40_44,
SUM(CASE WHEN DATE_ADD(data_nascita, INTERVAL '45' YEAR) < NOW() AND DATE_ADD(data_nascita, INTERVAL '50' YEAR) >= NOW() THEN 1 ELSE 0 END) AS 45_49,
SUM(CASE WHEN DATE_ADD(data_nascita, INTERVAL '50' YEAR) < NOW() AND DATE_ADD(data_nascita, INTERVAL '55' YEAR) >= NOW() THEN 1 ELSE 0 END) AS 50_54,
SUM(CASE WHEN DATE_ADD(data_nascita, INTERVAL '55' YEAR) < NOW() AND DATE_ADD(data_nascita, INTERVAL '60' YEAR) >= NOW() THEN 1 ELSE 0 END) AS 55_59,
SUM(CASE WHEN YEAR(data_nascita) <= YEAR(CURDATE())-60 THEN 1 ELSE 0 END) AS over_60
FROM tab_utenti
WHERE attivo='1')
No comments:
Post a Comment