powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / альтернатива GROUP BY
6 сообщений из 6, страница 1 из 1
альтернатива GROUP BY
    #33090722
adolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
К примеру, есть таблица MYSCHEMA.TAB1:

AT1 AT2 AT3
________________
1 A MINSK
2 A GRODNO
3 A VITEBSK
4 Z MOGILEV
5 Z MINSK
6 F GOMEL
7 F PINSK
8 F BREST
9 F MINSK

AT1 - первичный ключ

Требуется получить такую выборку :
AT1 AT2 AT3
________________
3 A VITEBSK
5 Z MINSK
9 F MINSK

тоесть для каждого различного значения AT2 выбрать кортеж, где AT1 максимально

пробуем

SELECT MAX(AT1), AT2, AT3 FROM MYSCHEMA.TAB1
GROUP BY AT2

- неверный запрос, поскольку, цитата

"Every field in the SELECT list must either be specified in the GROUP BY, or must havea column function applied against it. (Graeme Birchall, DB2 UDB V7.2
SQL Cookbook)"

то бишь AT3 не в дугу.

Но мне требуется аттрибут AT3. Вариант с объединением подзапросов не очень нравится, поскольку реальнае таблица много толще по объему (до млн. записей).

Кто что посоветует?

Спасибо.
...
Рейтинг: 0 / 0
альтернатива GROUP BY
    #33090819
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
select *
from myschema.tab1 t1
where exists 
    (select max(t2.at1) as at1
        , t2.at2
    from myschema.tab1 t2
    where t2.at2=t1.at2
    group by t2.at2
    having max(t2.at1)=t1.at1

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
альтернатива GROUP BY
    #33090820
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не то скопировал. Вот так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
select *
from test t1
where exists
(select t2.at2
 ,max(t2.at1)
from test t2
group by t2.at2
having max(t2.at1)=t1.at1)

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
альтернатива GROUP BY
    #33090825
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не заметил, что без подзапросов надо. По-моему никак.

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
альтернатива GROUP BY
    #33090856
adolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
riman, браво, спасибо!!
вариант проходит, это EXISTS с коррелированным подзапросом, что гораздо дешевле лобовых джойнов
...
Рейтинг: 0 / 0
альтернатива GROUP BY
    #33090866
adolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
riman, браво, спасибо!!
вариант проходит, это EXISTS с коррелированным подзапросом, что гораздо дешевле лобовых джойнов
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / альтернатива GROUP BY
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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