I have this, which seems to output what I want. Now I need to put the 2 cases into a function I guess
SELECT
gender,
CASEWHEN age ISNULLTHENNULLWHEN age >= 55THEN55WHEN age >= 45THEN45WHEN age >= 36THEN36WHEN age >= 30THEN30WHEN age >= 25THEN25WHEN age >= 18THEN18ELSENULLENDAS"age_from",
CASEWHEN age ISNULLTHENNULLWHEN age <= 17THEN17WHEN age <= 24THEN24WHEN age <= 29THEN29WHEN age <= 35THEN35WHEN age <= 44THEN44WHEN age <= 54THEN54ELSENULLENDAS"age_to",
COUNT(population.id) AS"count"FROM population
join people on population.person_id = people.idwhere period_id = 13GROUPBY
period_id,
age_to,
gender
ORDERBY age_from ASC
I have this, which seems to output what I want. Now I need to put the 2 cases into a function I guess
SELECT gender, CASE WHEN age IS NULL THEN NULL WHEN age >= 55 THEN 55 WHEN age >= 45 THEN 45 WHEN age >= 36 THEN 36 WHEN age >= 30 THEN 30 WHEN age >= 25 THEN 25 WHEN age >= 18 THEN 18 ELSE NULL END AS "age_from", CASE WHEN age IS NULL THEN NULL WHEN age <= 17 THEN 17 WHEN age <= 24 THEN 24 WHEN age <= 29 THEN 29 WHEN age <= 35 THEN 35 WHEN age <= 44 THEN 44 WHEN age <= 54 THEN 54 ELSE NULL END AS "age_to", COUNT(population.id) AS "count" FROM population join people on population.person_id = people.id where period_id = 13 GROUP BY period_id, age_to, gender ORDER BY age_from ASC