Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как посчитать отсутствие продаж за последние 3 месяца по всем месяцам / 9 сообщений из 9, страница 1 из 1
07.12.2021, 11:09
    #40118027
Romanov-krd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как посчитать отсутствие продаж за последние 3 месяца по всем месяцам
Есть таблица
id, month, category, sum

Как посчитать
month, category, count(id)
где в count считаем id если sum за последние 3 месяца =0 причем считать надо по каждому месяцу т.е. если в 202109,202108,202107 был 0 то на 202110 считаем count(id)
...
Рейтинг: 0 / 0
07.12.2021, 12:02
    #40118045
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как посчитать отсутствие продаж за последние 3 месяца по всем месяцам
Выложи пример данных (в виде CREATE TABLE + INSERT INTO) и требуемый ответ для именно этих данных.
...
Рейтинг: 0 / 0
07.12.2021, 12:03
    #40118046
Павел Воронцов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как посчитать отсутствие продаж за последние 3 месяца по всем месяцам
Romanov-krd,

Код: sql
1.
2.
3.
4.
5.
6.
select t.category, t.month, count(t.id) as cnt
from tbl t
where 0 = (select sum(t1.sum) from tbl t1 
where t1.category = t.category and t1.month >= dateadd(month,-3,t.month)
and t1.month < t.month)
group by t.category, t.month

?
...
Рейтинг: 0 / 0
07.12.2021, 12:11
    #40118053
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как посчитать отсутствие продаж за последние 3 месяца по всем месяцам
Должно быстрее работать, если вместо группировки использовать три самосоединения, каждое из которых отличается на месяц.
...
Рейтинг: 0 / 0
08.12.2021, 08:40
    #40118323
Павел Воронцов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как посчитать отсутствие продаж за последние 3 месяца по всем месяцам
Владислав Колосов
Должно быстрее работать, если вместо группировки использовать три самосоединения, каждое из которых отличается на месяц.
Кому должно? Это хорошо бы подтвердить.
...
Рейтинг: 0 / 0
08.12.2021, 09:13
    #40118325
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как посчитать отсутствие продаж за последние 3 месяца по всем месяцам
Владислав Колосов
Должно быстрее работать, если вместо группировки использовать три самосоединения, каждое из которых отличается на месяц.

Ишо быстрее - одно, но за три месяца.
...
Рейтинг: 0 / 0
08.12.2021, 12:02
    #40118361
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как посчитать отсутствие продаж за последние 3 месяца по всем месяцам
aleks222,

да.
...
Рейтинг: 0 / 0
08.12.2021, 12:04
    #40118362
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как посчитать отсутствие продаж за последние 3 месяца по всем месяцам
Павел Воронцов
Владислав Колосов
Должно быстрее работать, если вместо группировки использовать три самосоединения, каждое из которых отличается на месяц.
Кому должно? Это хорошо бы подтвердить.

Вполне очевидно, что сортировка - сама медленная операция. Что здесь подтверждать.
...
Рейтинг: 0 / 0
14.12.2021, 16:09
    #40119985
a_voronin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как посчитать отсутствие продаж за последние 3 месяца по всем месяцам
Код: sql
1.
2.
3.
4.
SUM(count(t.id)) OVER (PARTITION BY t.category) OVER (ORDER BY t.month ROWS BETWEEN 2 PRECEDING AND CURRENT ROW) 


group by t.category, t.month



остальное допишите сами

нужна таблица календаря, где нет пропуска в месяцах
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как посчитать отсутствие продаж за последние 3 месяца по всем месяцам / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]