Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Группировка по неделям
|
|||
|---|---|---|---|
|
#18+
Добрый день, подскажите пожалуйста, как сделать такое: Есть выборка с данными о продажах, сумма за каждую неделю. Данные такие 1 201847 2018-11-24 00:00:00.000 86445.29105300 2 201846 2018-11-17 00:00:00.000 84884.60365000 3 201845 2018-11-10 00:00:00.000 113753.04355800 4 201844 2018-11-03 00:00:00.000 91600.51662300 5 201843 2018-10-27 00:00:00.000 125485.59366200 6 201842 2018-10-20 00:00:00.000 121193.76589100 7 201841 2018-10-13 00:00:00.000 111237.67063200 8 201840 2018-10-06 00:00:00.000 119599.89593200 Нужна сумма за 52 недели. Как это лучше всего реализовать? Пока придумал только сгруппировать по ROW_Number() по 52 и присвоить число, например первые 52 записи 1, вторые 52 2 и т.д. и потом сумировать через Partition. Как присвоить эти номерки? Или я вообще велосипед изобретаю и есть решение получше? )) Код: sql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 16:39 |
|
||
|
Группировка по неделям
|
|||
|---|---|---|---|
|
#18+
Troinat, для начала надо понять, какие недели вы имеете в виду. Например, 1 января принадлежит какой неделе? И всегда ли одной и той же? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 17:03 |
|
||
|
Группировка по неделям
|
|||
|---|---|---|---|
|
#18+
iap, как правило недель в году 52, т.е. 1 января это будет 1 неделя. Разделяются они через datepart(week,data). Но по неделям уже разделено, т.е. в таблице 1 строка = 1 неделе. Нужно, чтобы при сортировке по уменьшению, для каждой строки суммировалась сумма последних 52 строк (включая текущую). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 17:10 |
|
||
|
Группировка по неделям
|
|||
|---|---|---|---|
|
#18+
Troinat , т.е. 1 января это будет 1 неделя. . не факт ;) есть американская и наша системы (гугл в помощь) если не заморачиваться то просто группировать по Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 17:16 |
|
||
|
Группировка по неделям
|
|||
|---|---|---|---|
|
#18+
StarikNavy, Это совсем не то, что нужно(( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 17:23 |
|
||
|
Группировка по неделям
|
|||
|---|---|---|---|
|
#18+
что-то типа того select sum(saleseur) over(order by data DESC ROWS BETWEEN CURRENT ROW AND 52 FOLLOWING ) saleseur ,[data] from Sales group by [data] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 17:54 |
|
||
|
Группировка по неделям
|
|||
|---|---|---|---|
|
#18+
SerGrr1898что-то типа того select sum(saleseur) over(order by data DESC ROWS BETWEEN CURRENT ROW AND 52 FOLLOWING ) saleseur ,[data] from Sales group by [data] фантастика :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 17:56 |
|
||
|
Группировка по неделям
|
|||
|---|---|---|---|
|
#18+
Troinat, SUM + OVER + RANGE BETWEEN CURRENT ROW AND 52 FOLLOWING ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 17:56 |
|
||
|
Группировка по неделям
|
|||
|---|---|---|---|
|
#18+
а если в одну из недель данных не будет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 17:57 |
|
||
|
Группировка по неделям
|
|||
|---|---|---|---|
|
#18+
WarAntTroinat, SUM + OVER + RANGE BETWEEN CURRENT ROW AND 52 FOLLOWING фантастика часть два :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 17:58 |
|
||
|
Группировка по неделям
|
|||
|---|---|---|---|
|
#18+
SerGrr1898что-то типа того select sum(saleseur) over(order by data DESC ROWS BETWEEN CURRENT ROW AND 52 FOLLOWING ) saleseur ,[data] from Sales group by [data] Да! Только 51 FOLLOWING а не 52 :) Т.к если 52 то считает 53 недели. Спасибо большое! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 18:00 |
|
||
|
Группировка по неделям
|
|||
|---|---|---|---|
|
#18+
Troinat, Как тут выше сказали, это будет корректно работать только если нет пропусков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 18:06 |
|
||
|
Группировка по неделям
|
|||
|---|---|---|---|
|
#18+
SerGrr1898, т.е. в каждой строке будет какая-то сумма за следующие 52 недели, что совсем не то что просит ТС ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 18:07 |
|
||
|
Группировка по неделям
|
|||
|---|---|---|---|
|
#18+
TaPaK, ну сортировку поменять, вроде, не проблема. Я скинул концепт) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 18:11 |
|
||
|
Группировка по неделям
|
|||
|---|---|---|---|
|
#18+
TaPaK, ну сортировку поменять, вроде, не проблема. Я скинул концепт) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 18:11 |
|
||
|
|

start [/forum/topic.php?fid=46&fpage=124&tid=1688693]: |
0ms |
get settings: |
9ms |
get forum list: |
22ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 260ms |
| total: | 415ms |

| 0 / 0 |
