with user_groups as (
select id, last_name, name, age,
case
when age between 7 and 17 then 'школьники'
when age between 18 and 24 then 'студенты'
when age between 25 and 65 then 'служащие'
when age >= 66 then 'пенсионеры'
end category
from users
)
select *
from user_groups;
with user_groups as (
select id,
case
when age between 7 and 17 then 'школьники'
when age between 18 and 24 then 'студенты'
when age between 25 and 65 then 'служащие'
when age >= 66 then 'пенсионеры'
end category
from users
)
select category, count(tickets.id)
from user_groups
left join tickets on user_groups.id = tickets.user_id
group by category;