Corsi on-line

Estrarre record per intervalli anagrafici

Un breve post per suggerire la sintassi necessaria all’estrazione di record sulla base delle fascie di età; supponiamo di avere una tabella in cui sono registrati i dati relativi agli studenti delle diverse classi di una scuola, potrebbe essere utile in alcuni casi estrarre le informazioni relative agli allievi ordinandoli sulla base dell’età:

Per far questo sarà possibile utilizzare un’interrogazione come la seguente:

SELECT COUNT(*) AS studenti,
CASE
WHEN ( YEAR(CURRENT_DATE)-YEAR(data))- ( RIGHT(CURRENT_DATE,5)< RIGHT(data,5) ) BETWEEN 6 AND 8 THEN "6-8"
WHEN ( YEAR(CURRENT_DATE)-YEAR(data))- ( RIGHT(CURRENT_DATE,5)< RIGHT(data,5) ) BETWEEN 7 AND 10 THEN "7-10"
ELSE "non in range"
END as range
FROM scuola
GROUP BY range

In questo modo sarà possibile isolare due fascie d’età, una composta dagli studenti compresi tra i “6” e gli “8” anni e l’altra che comprende gli allievi tra i “7” e i “10” anni; tutti gli studenti con età al di fuori dei due intervalli definiti finiranno all’interno della categoria “non in range”.

Post correlati
I più letti del mese
Tematiche