krendel
|
|
|
|
|
Рег.: 20.10.2003
|
Сообщений: 14379
|
|
Рейтинг: 10274
|
|
[psql] Есть ли хаки чтобы вытаскивать id соответствующий max(val)?
24.07.2008 16:58
|
|
|
то есть есть таблица
create table (id , ref_id, value)
хочется иметь на выходе
select id /* соответствующий ряду с выбранным max(value)*/, max(value) from table group by ref_id
вроде задача - дикий боян, но ничего путного найти не получилось.
ЗЫ способы с джойнами и субселектами не предлагать - и сам так умею
|
|
alcogolic
|
anonymous
|
|
|
|
Рег.: 01.06.2005
|
Сообщений: 1678
|
|
Рейтинг: 2108
|
|
Re: [psql] Есть ли хаки чтобы вытаскивать id соответствующий max(val)?
[re: krendel]
24.07.2008 17:07
|
|
|
А если строчек с таковым value несколько? Что тогда ты хочешь получить?
|
'НИКАКИХ КРЫЛЬЕВ НЕТ. ПРОСТО УМИРАЕШЬ И ВСЕ' Гусеница |
|
Yorik
|
|
|
|
|
Рег.: 01.09.2005
|
Сообщений: 2476
|
Из: Москва
|
Рейтинг: 633
|
|
Re: [psql] Есть ли хаки чтобы вытаскивать id соответствующий max(val)?
[re: krendel]
24.07.2008 17:24
|
|
|
|
maloi
|
Зануда
|
|
|
|
Рег.: 09.05.2006
|
Сообщений: 6506
|
Из: $(pwd)
|
Рейтинг: 2880
|
|
Re: [psql] Есть ли хаки чтобы вытаскивать id соответствующий max(val)?
[re: alcogolic]
24.07.2008 17:26
|
|
|
В ответ на:
А если строчек с таковым value несколько? Что тогда ты хочешь получить?
таблицу с ними?
|
Помни: убив анимешника, ты повышаешь скорость сети на 5% |
|
DarkGray
|
Carpal Tunnel
|
|
|
|
Рег.: 30.09.2002
|
Сообщений: 31411
|
|
Рейтинг: 8952
|
|
Re: [psql] Есть ли хаки чтобы вытаскивать id соответствующий max(val)?
[re: krendel]
24.07.2008 17:32
|
|
|
база какая?
ps кошерное решение - это через аналитические функции (но их должна база держать)
|
|
alcogolic
|
anonymous
|
|
|
|
Рег.: 01.06.2005
|
Сообщений: 1678
|
|
Рейтинг: 2108
|
|
Re: [psql] Есть ли хаки чтобы вытаскивать id соответствующий max(val)?
[re: maloi]
24.07.2008 17:34
|
|
|
А что дальше с ними делать? Я не думаю, что это таблица представляет какой-либо интерес сама по себе.
Здесь варианта два, на мой взгляд. Либо эти записи как-то обрабатываются, тогда логичнее будет написать что-то типа
code:
selec max(value) to max_value from table
update table set ...=... where value=%max_value%
Либо подразумевается, что такая запись гарантированно одна. Но тогда, какая принципиальная разница между id и value? При создании уникального индекса по value скорость работы запросов с join-ами будет ровно такой же.
|
'НИКАКИХ КРЫЛЬЕВ НЕТ. ПРОСТО УМИРАЕШЬ И ВСЕ' Гусеница |
|
Storm
|
:)
|
|
|
|
Рег.: 09.09.2004
|
Сообщений: 3301
|
Из: hane.ru
|
Рейтинг: 132
|
|
Re: [psql] Есть ли хаки чтобы вытаскивать id соответствующий max(val)?
[re: krendel]
24.07.2008 18:31
|
|
|
|
krendel
|
|
|
|
|
Рег.: 20.10.2003
|
Сообщений: 14379
|
|
Рейтинг: 10274
|
|
Re: [psql] Есть ли хаки чтобы вытаскивать id соответствующий max(val)?
[re: DarkGray]
24.07.2008 22:40
|
|
|
база portgreslq, нужных аналитических функций не нашел, зато нашел вот что: User-Defined Aggregates. адская штука и если будет желание, можно сделать то, что надо.
|
|
krendel
|
|
|
|
|
Рег.: 20.10.2003
|
Сообщений: 14379
|
|
Рейтинг: 10274
|
|
Re: [psql] Есть ли хаки чтобы вытаскивать id соответствующий max(val)?
[re: alcogolic]
24.07.2008 22:43
|
|
|
В ответ на:
Либо подразумевается, что такая запись гарантированно одна. Но тогда, какая принципиальная разница между id и value? При создании уникального индекса по value скорость работы запросов с join-ами будет ровно такой же.
value естественно не уникальны. ключ и именно он нужен, чтобы потом по нему отсортировать.
в идеале подразумевается, что берется минимальный, если с одним и темже value их несколько ( но в принципе на это условие забить).
|
|
krendel
|
|
|
|
|
Рег.: 20.10.2003
|
Сообщений: 14379
|
|
Рейтинг: 10274
|
|
Re: [psql] Есть ли хаки чтобы вытаскивать id соответствующий max(val)?
[re: Storm]
24.07.2008 22:45
|
|
|
спасибо, не видел такого. там даже есть подходящее решение, но работает только под оракл.
да, на всякий случай, чтобы камнями не кидали - в заголовке указана база )
|
|
Kraft
|
Carpal Tunnel
|
|
|
|
Рег.: 09.12.2002
|
Сообщений: 3704
|
|
Рейтинг: 1427
|
|
Re: [psql] Есть ли хаки чтобы вытаскивать id соответствующий max(val)?
[re: Storm]
25.07.2008 11:31
|
|
|
Я, типа, не шарю особо, но мне интересно - может кто-нибудь аргументировать почему так нельзя:
code: select value, a, b, c from t
where value = (select max(value) from t)
ы?
|
Пароль, чтобы не забыть (без кавычек): 'lEujoDUp3xoq' |
|
Yorik
|
|
|
|
|
Рег.: 01.09.2005
|
Сообщений: 2476
|
Из: Москва
|
Рейтинг: 633
|
|
Re: [psql] Есть ли хаки чтобы вытаскивать id соответствующий max(val)?
[re: Kraft]
25.07.2008 11:36
|
|
|
В ответ на:
ЗЫ способы с джойнами и субселектами не предлагать - и сам так умею
Может, поэтому?
|
|
Storm
|
:)
|
|
|
|
Рег.: 09.09.2004
|
Сообщений: 3301
|
Из: hane.ru
|
Рейтинг: 132
|
|
Re: [psql] Есть ли хаки чтобы вытаскивать id соответствующий max(val)?
[re: Kraft]
25.07.2008 13:13
|
|
|
А где у тебя группировка?
|
|
|