Запрос с подзапросами, подсчетом кол-ва и группировкой?

Друзья, подскажите пожалуйста, не могу додуматься, как написать следующий запрос:

Есть таблица url (список ссылок):
Поля таблицы:
id INT PK AI,
full_link VARCHAR (100),
created_at DATETIME,
deleted_at DATETIME

Мне нужно sql-запросом собрать информацию для таблицы статистики weekly_stats:
added_links INT (кол-во добавленных ссылок, которые были добавлены в соответствующую неделю)
deleted links INT (кол-во удаленных ссылок, которые были удалены в соответствующую неделю)
week INT
month INT
year INT

Возможно ли это выполнить одни запросом? Буду очень благодарен за помощь с запросом.
  • Вопрос задан
  • 30 просмотров
Решения вопроса 1
@dimoff66
Кратко о себе: Я есть
select sum(added_links), sum(deleted_links), year, month, week
from (
select 
    YEAR(url.created_at) as year, 
    MONTH(url.created_at) as month,
    WEEK(url.created_at) as week,
    1 as added_links,
    0 as deleted_links,
from url
where url.created_at IS NOT NULL
UNION ALL 
select 
    YEAR(url.deleted_at) as year, 
    MONTH(url.deleted_at) as month,
    WEEK(url.deleted_at) as week,
    0 as added_links,
    1 as deleted_links,
from url
where url.deleted_at IS NOT NULL
)
group by year, month, week
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы