powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / хитрый GROUP BY, да и SORT BY и прочие...
8 сообщений из 8, страница 1 из 1
хитрый GROUP BY, да и SORT BY и прочие...
    #32166832
~RVS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
допустим, есть запрос:
Код: plaintext
1.
2.
3.
4.
SELECT f1 as alias1, f2 as alias2, f3+f4 as alias3, MyFunc(f5) as alias4, sum(f6) as alias5 
FROM MyTable 
SORT BY f1, MyFunc(f5) 
GROUP BY f1, f2, f3+f4, MyFunc(f5), sum(f6)


вид этого запроса (его содержимое в GROUP BY и SORT BY) родилось в силу того, что не получается сделать что-нибудь вроде

Код: plaintext
1.
2.
3.
4.
SELECT f1 as alias1, f2 as alias2, f3+f4 as alias3, MyFunc(f5) as alias4, sum(f6) as alias5 
FROM MyTable 
SORT BY alias1, alias4
GROUP BY alias1, alias2, alias3, alias4, alias5


, что по времени выполнения будет несколько быстрее, если учесть, что MyFunc() работает тормозно.

синтаксис описанный выше легко применялся в MSSQL-е.

что подобное есть (ли?) в оракле.
...
Рейтинг: 0 / 0
хитрый GROUP BY, да и SORT BY и прочие...
    #32166844
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SORT BY - нет такой фразы SQL
...
Рейтинг: 0 / 0
хитрый GROUP BY, да и SORT BY и прочие...
    #32166896
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А не будет ли безразлично, по чему группировать, по MyFunc(f5) или просто f5?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
select alias1
     , alias2
     , alias3
     , MyFunc(f5) alias4
     , alias5
from (select f1 alias1
           , f2 alias2
           , f3 + f4 alias3   
           , f5
           , sum(f6) sum_f6 alias5
      from MyTable 
      group by f1
             , f2
             , f3 + f4 
             , f5
     )
order by alias1
      , alias4      
...
Рейтинг: 0 / 0
хитрый GROUP BY, да и SORT BY и прочие...
    #32166930
~RVS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну про ORDER<->SORT я перепутал - бывает. 8-) а вот более другого способа нет, кроме как во from его запихивать вместо таблицы?

не красиво это.... бывает если что сложнее, то не удобно, весьма...
...
Рейтинг: 0 / 0
хитрый GROUP BY, да и SORT BY и прочие...
    #32166945
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"не красиво это.... "

Красиво, не красиво - это уже вторично, главное план.
...
Рейтинг: 0 / 0
хитрый GROUP BY, да и SORT BY и прочие...
    #32167093
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя я не совсем прав: если для 2-х различных аргументов функция вернет один и тот же результат (например, округление дат, чисел), то такой вариант мало что даст. Но использование псевдонима поля в выражениии GROUP BY вроде как не предусмотрено.
...
Рейтинг: 0 / 0
хитрый GROUP BY, да и SORT BY и прочие...
    #32167161
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
SELECT f1 as alias1, f2 as alias2, f3+f4 as alias3, MyFunc(f5) as alias4, sum(f6) as alias5 
FROM MyTable 
SORT BY alias1, alias4
GROUP BY alias1, alias2, alias3, alias4, alias5


Как я думаю у тебя ошибка в запросе в том, что ты пытаешься использовать двойное группирование -
Код: plaintext
...sum(f6) as alias5...GROUP BY alias1, alias2, alias3, alias4, alias5....
...
Рейтинг: 0 / 0
хитрый GROUP BY, да и SORT BY и прочие...
    #32167364
DimaR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще, сортировка перед группировкой не имеет смысла,
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / хитрый GROUP BY, да и SORT BY и прочие...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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