|
Группировка посредством partition by
|
|||
---|---|---|---|
#18+
Добрый день. С PARTITION BY практически не работал, как правило не было необходимости, сейчас пытаюсь разобраться и не очень понимаю, как ограничить окна. Подробнее ниже. Есть некая таблица table_in следующего вида (упрощенно) IDTypeNameGenderRest1Type_11101.352Type_11308.873Type_2185.634Type_1078.965Type_2089.586Type_3167.92 ,где в таблице Gender 0=female, 1=male Необходимо получить следующую агрегированную таблицу TypeNameFemale sumMale sum Female+Male sumType_178.96410.22489.18Type_289.5885.63175.21Type_3067.9267.92 Можно сделать так: сначала вставить во временную таблицу distinct TypeName, а потом несколько Update по столбцам. Но мне это не нравится, потому что хоть TypeName и более менее постоянные, но тем не менее могут изменится и не хочется их хардкодить. Зато это понятно и быстро :) Пытаюсь понять, как это можно сделать с помощью PARTITION BY. Первый и последний столбец могу получить так (хоть меня немного и смущает distinct) Код: sql 1. 2. 3.
А вот как получить два средних столбца? Не понимаю как сделать без подзапроса. Мне как-то нужно ограничить окно для одного столбца только gender = 1, для другого только gender = 0. Это вообще возможно без подзапросов или нет? Просто если нет, то значит и думать нечего, сделаю подзапросами. Заранее благодарю. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2020, 09:52 |
|
Группировка посредством partition by
|
|||
---|---|---|---|
#18+
RuCosinus, Вам не нужен PARTITION BY Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2020, 10:00 |
|
Группировка посредством partition by
|
|||
---|---|---|---|
#18+
RuCosinus немного и смущает distinct А отсутствие гарантии повторяемости результата без явного order by не смущает? Ну и CASE в помощь. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2020, 10:01 |
|
Группировка посредством partition by
|
|||
---|---|---|---|
#18+
msLex, спасибо. Действительно, что-то затупил, про конструкцию с case думал, но до group by как-то не дошел. Все элементарно, еще раз благодарю env, да, вы правы. Причем я только что про это читал, про sum без явного group by в оконных функциях. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2020, 10:26 |
|
|
start [/forum/topic.php?fid=46&fpage=57&tid=1685996]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
216ms |
get topic data: |
13ms |
get forum data: |
4ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
others: | 22ms |
total: | 325ms |
0 / 0 |