Re: how to return the first record from the sorted records which may have duplicated value.

Поиск
Список
Период
Сортировка
От Yi Zhao
Тема Re: how to return the first record from the sorted records which may have duplicated value.
Дата
Msg-id 1221815458.3203.33.camel@localhost.localdomain
обсуждение исходный текст
Ответ на how to return the first record from the sorted records which may have duplicated value.  (Yi Zhao <yi.zhao@alibaba-inc.com>)
Список pgsql-general
now, I do it like this(plpgsql)
-----------
this methold have low efficiency, when the records is large, it will become slow, so someone can tell me some high efficiency way???

thanks.
On Fri, 2008-09-19 at 16:51 +0800, Yi Zhao wrote:
hi all:
I have a table with columns(>2) named "query", "pop", "dfk".
what I want is:
when I do some select, if the column "query" in result records have
duplicate value, I only want the record which have the maximum value of
the "pop".

for example, the content of table:
query pop dfk
-----------------------
abc    30   1 --max
foo     20   lk --max
def     16   kj --max
foo     15   fk --discard
abc     10   2 --discard
bar      8    are --max

the result should be:
query pop dfk
-----------------------
abc    30   1
foo     20   lk
def     16   kj
bar      8    are

now, I do it like this(plpgsql)
------------------------------------
declare hq := ''::hstore;
begin
for rc in execute 'select * from test order by pop desc' loopif not defined(hq, rc.query) then	hq := hq || (rc.query => '1')::hstore;	return next rc;end if;
end loop;
-----------------------------------
language sql/plpgsql will be ok.

ps: I try to use "group by" or "max" function, because of the
multi-columns(more than 2), I  failed. 

thanks,
any answer is appreciated.

regards,


В списке pgsql-general по дате отправления:

Предыдущее
От: Andreas Kretschmer
Дата:
Сообщение: Re: how to return the first record from the sorted records which may have duplicated value.
Следующее
От: Glyn Astill
Дата:
Сообщение: Stop trigger fireing for a specific user?