powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как сделать подсчет через оконную функцию
10 сообщений из 10, страница 1 из 1
Как сделать подсчет через оконную функцию
    #40118114
Romanov-krd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SELECT	t2.Month , t2.Category1, t2.Segment, t2.Scheme, '' as Churn , GMV
FROM 
	(
	select	Month, Category1, Segment,  Scheme,  ParentID, sum(GMV) GMV
	from	(
			select toYYYYMM(Date) Month, ParentID, GMV, Category1, SupplierSegment as Segment, Scheme
			from DP_GMV_Forecast.test
			where GMV=0 and ParentID=35535000 and Category1='Miscellaneous accessories' and Scheme='FBS'
			) t1
	group by ParentID, Month, Category1, Segment,  Scheme
	) t2
	order by t2.Month, t2.Category1


выводит как во вложении. Как сделать с помощью оконной функции чтобы если идет 2 месяца подряд в gmv 0 то на третий ставилось 1, и далее опять 0 во всех случаях
...
Рейтинг: 0 / 0
Как сделать подсчет через оконную функцию
    #40118136
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как сделать подсчет через оконную функцию
    #40118151
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Romanov-krd

выводит как во вложении. Как сделать с помощью оконной функции чтобы если идет 2 месяца подряд в gmv 0 то на третий ставилось 1, и далее опять 0 во всех случаях


Не нада те "оконной функции". Разучи уже exists.
...
Рейтинг: 0 / 0
Как сделать подсчет через оконную функцию
    #40118187
Romanov-krd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aleks222,

я уже почти сделал
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
	SELECT	t2.Month , t2.Category1, t2.Segment, t2.Scheme, GMV, ParentID,
	count(*) over (partition by ParentID order by Month asc) as Churn 
	FROM 
		(
			select toYYYYMM(Date) Month, ParentID, GMV, Category1, SupplierSegment as Segment, Scheme
			from DP_GMV_Forecast.test
			where GMV=0 and ParentID=1228517030000 --and Category1='Miscellaneous accessories' and Scheme='FBS'
			group by toYYYYMM(Date), ParentID,Category1, SupplierSegment, Scheme, GMV
		) t2
	group by t2.Month , t2.Category1, t2.Segment, t2.Scheme, GMV, ParentID  settings  allow_experimental_window_functions = 1;



только как сделать чтобы месяцы по порядку разбивало т.е.
201801 -1
201802 - 2

201808 - 1
201812 - 1
...
Рейтинг: 0 / 0
Как сделать подсчет через оконную функцию
    #40118190
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
судя по "settings allow_experimental_window_functions = 1" это Кликхаус
...
Рейтинг: 0 / 0
Как сделать подсчет через оконную функцию
    #40118192
Romanov-krd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
komrad,

та одно и то же что mssql
...
Рейтинг: 0 / 0
Как сделать подсчет через оконную функцию
    #40118204
Romanov-krd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aleks222,

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

так он проверяет на вхождение, а мне надо чтобы по порядку месяцев сумма нулевая была

Наивный чукотский юноша, ежели нет вхождений за три месяца => сумма=0.
ВашЪ КО.
...
Рейтинг: 0 / 0
Как сделать подсчет через оконную функцию
    #40118259
Romanov-krd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aleks222
Romanov-krd
aleks222,

так он проверяет на вхождение, а мне надо чтобы по порядку месяцев сумма нулевая была

Наивный чукотский юноша, ежели нет вхождений за три месяца => сумма=0.
ВашЪ КО.


вообще не понятно как это в коде написать
...
Рейтинг: 0 / 0
Как сделать подсчет через оконную функцию
    #40118265
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Romanov-krd
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SELECT	t2.Month , t2.Category1, t2.Segment, t2.Scheme, '' as Churn , GMV
FROM 
	(
	select	Month, Category1, Segment,  Scheme,  ParentID, sum(GMV) GMV
	from	(
			select toYYYYMM(Date) Month, ParentID, GMV, Category1, SupplierSegment as Segment, Scheme
			from DP_GMV_Forecast.test
			where GMV=0 and ParentID=35535000 and Category1='Miscellaneous accessories' and Scheme='FBS'
			) t1
	group by ParentID, Month, Category1, Segment,  Scheme
	) t2
	order by t2.Month, t2.Category1


выводит как во вложении. Как сделать с помощью оконной функции чтобы если идет 2 месяца подряд в gmv 0 то на третий ставилось 1, и далее опять 0 во всех случаях


Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
declare @t table (
ym int,
gmv int
);


insert into @t values 
(201801, 0),
(201802, 0),
(201803, 0),
(201804, 1),
(201805, 0),
(201806, 0),
(201807, 1),
(201808, 0),
(201809, 0),
(201810, 0),
(201811, 1),
(201812, 1)

select
      case when sum(abs([gmv])) over (order by [ym] rows between 2 preceding and current row) = 0 and
                count(1) over (order by [ym] rows between 2 preceding and current row) = 3 then 1
           else 0
       end as [result],
      [ym],
      [gmv]

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


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