|
альтернатива GROUP BY
|
|||
---|---|---|---|
#18+
К примеру, есть таблица 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. Вариант с объединением подзапросов не очень нравится, поскольку реальнае таблица много толще по объему (до млн. записей). Кто что посоветует? Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2005, 14:16 |
|
альтернатива GROUP BY
|
|||
---|---|---|---|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
Posted via ActualForum NNTP Server 1.2 ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2005, 14:56 |
|
альтернатива GROUP BY
|
|||
---|---|---|---|
#18+
не то скопировал. Вот так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
Posted via ActualForum NNTP Server 1.2 ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2005, 14:57 |
|
альтернатива GROUP BY
|
|||
---|---|---|---|
#18+
не заметил, что без подзапросов надо. По-моему никак. Posted via ActualForum NNTP Server 1.2 ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2005, 15:00 |
|
альтернатива GROUP BY
|
|||
---|---|---|---|
#18+
riman, браво, спасибо!! вариант проходит, это EXISTS с коррелированным подзапросом, что гораздо дешевле лобовых джойнов ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2005, 15:12 |
|
|
start [/forum/topic.php?fid=43&msg=33090825&tid=1605886]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
others: | 18ms |
total: | 159ms |
0 / 0 |