Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
16.06.2020, 09:52
|
|||
|---|---|---|---|
|
|||
Группировка посредством 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, 10:00
|
|||
|---|---|---|---|
Группировка посредством partition by |
|||
|
#18+
RuCosinus, Вам не нужен PARTITION BY Код: sql 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.06.2020, 10:01
|
|||
|---|---|---|---|
Группировка посредством partition by |
|||
|
#18+
RuCosinus немного и смущает distinct А отсутствие гарантии повторяемости результата без явного order by не смущает? Ну и CASE в помощь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.06.2020, 10:26
|
|||
|---|---|---|---|
|
|||
Группировка посредством partition by |
|||
|
#18+
msLex, спасибо. Действительно, что-то затупил, про конструкцию с case думал, но до group by как-то не дошел. Все элементарно, еще раз благодарю env, да, вы правы. Причем я только что про это читал, про sum без явного group by в оконных функциях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=46&tablet=1&tid=1685996]: |
0ms |
get settings: |
7ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
| others: | 210ms |
| total: | 341ms |

| 0 / 0 |
