|
Как перестроить запрос с использованием оконных функций?
|
|||
---|---|---|---|
#18+
Здравствуйте! Упрощенно есть запрос вида: Код: sql 1. 2. 3. 4. 5. 6. 7.
, который среди прочих возвращает строки: Итого Итого 8 ТП1 МЛ1 3 ТП1 МЛ2 3 ТП2 МЛ3 2 Как сделать, чтобы в 3-м столбце в строке итогов 3 учитывалась 1 раз так, как если бы не было дополнительной группировки по столбцу [Наименование маршрутного листа]? Нужно использовать оконные функции? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2021, 14:21 |
|
Как перестроить запрос с использованием оконных функций?
|
|||
---|---|---|---|
#18+
Борис Гаркун, если номер МЛ не имеет значения выбирайте максимальный или минимальный, либо заменяйте его на пустую строку и группируйте по вычисляемому значению. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2021, 14:28 |
|
Как перестроить запрос с использованием оконных функций?
|
|||
---|---|---|---|
#18+
Владислав Колосов, номера МЛ нужны в детализированных строках. То, что суммируется в 3-м столбце есть характеристика того, что отображается в 1-м(количество точек учета есть характеристика ТП другими словами). Только в супер итогах(когда и в 1-м, и во 2-м столбцах значение Итого) нужно суммировать так, как будто нет группировки по 2-му столбцу ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2021, 14:37 |
|
Как перестроить запрос с использованием оконных функций?
|
|||
---|---|---|---|
#18+
Борис Гаркун, вы хотите пойти против законов природы? Если в наборе данных две тройки, то почему одну из них не надо учитывать? Делайте без rollup в таком случае. Выбирайте данные и "подвал" через union all запрос, подвал сгруппируйте как требуется. Для правильной сортировки добавите сортировочный атрибут, для первого запроса значение 0, для второго значение 1, сортируйте по этому атрибуту и другим, каким нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2021, 16:21 |
|
Как перестроить запрос с использованием оконных функций?
|
|||
---|---|---|---|
#18+
?? как альтернатива grouping sets может даже в комбинации с coalesce()/isnull() есть ещё count() (и даже с distinct), можно добавить дополнительные условия фильтрации через having но без полноценной постановки задачи всё пальцем в небо ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2021, 16:50 |
|
|
start [/forum/topic.php?fid=46&msg=40036187&tid=1685208]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
159ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
others: | 313ms |
total: | 555ms |
0 / 0 |