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

Как посчитать
month, category, count(id)
где в count считаем id если sum за последние 3 месяца =0 причем считать надо по каждому месяцу т.е. если в 202109,202108,202107 был 0 то на 202110 считаем count(id)
...
Рейтинг: 0 / 0
Как посчитать отсутствие продаж за последние 3 месяца по всем месяцам
    #40118045
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выложи пример данных (в виде CREATE TABLE + INSERT INTO) и требуемый ответ для именно этих данных.
...
Рейтинг: 0 / 0
Как посчитать отсутствие продаж за последние 3 месяца по всем месяцам
    #40118046
Фотография Павел Воронцов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Как посчитать отсутствие продаж за последние 3 месяца по всем месяцам
    #40118053
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Должно быстрее работать, если вместо группировки использовать три самосоединения, каждое из которых отличается на месяц.
...
Рейтинг: 0 / 0
Как посчитать отсутствие продаж за последние 3 месяца по всем месяцам
    #40118323
Фотография Павел Воронцов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов
Должно быстрее работать, если вместо группировки использовать три самосоединения, каждое из которых отличается на месяц.
Кому должно? Это хорошо бы подтвердить.
...
Рейтинг: 0 / 0
Как посчитать отсутствие продаж за последние 3 месяца по всем месяцам
    #40118325
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов
Должно быстрее работать, если вместо группировки использовать три самосоединения, каждое из которых отличается на месяц.

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

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

Вполне очевидно, что сортировка - сама медленная операция. Что здесь подтверждать.
...
Рейтинг: 0 / 0
Как посчитать отсутствие продаж за последние 3 месяца по всем месяцам
    #40119985
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как посчитать отсутствие продаж за последние 3 месяца по всем месяцам
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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