Задание по среднему возрасту в таблице и сколько на каждую неделю дней рождений. SQL

Всем привет, у меня есть практическое задание на курсах, но я не понимаю как его выполнить.

1)Подсчитайте средний возраст пользователей в таблице users. 2)Подсчитайте количество дней рождения, которые приходятся на каждый из дней недели. Следует учесть, что необходимы дни недели текущего года, а не года рождения.

Вот данные таблицы, чтобы было проще:

введите сюда описание изображения

Мне говорили что-то про виртуальные таблицы, но до меня не дошло. Так же знаю что можно datetime((to_days(now()) - to_days(birthday)) / 365.25) - чтобы узнать сколько лет персоне, но дальше этого не идет(( Помогите пожалуйста, как можно было понять, это MySQL.

Вот с подсказкой в комментарии, все еще не понимаю как? введите сюда описание изображения

Первое сделано так: введите сюда описание изображения


Ответы (1 шт):

Автор решения: Alexander Naumov

Я эту же домашку сейчас делаю. Получилось через count & group by.

1)

select
      avg(
         (YEAR(CURRENT_DATE) - YEAR(birthday)) - (DATE_FORMAT(CURRENT_DATE, '%m%d') < DATE_FORMAT(birthday, '%m%d')) 
          )
 FROM profiles
select 
    weekday(date_format(birthday, '2021-%m-%d')) as 'day_number',
    count(*) as 'birthdays_qnty'
from profiles
group by weekday(date_format(birthday, '2021-%m-%d'))
order by day_number;
→ Ссылка