Re: writing a MIN(RECORD) aggregate

Поиск
Список
Период
Сортировка
От Decibel!
Тема Re: writing a MIN(RECORD) aggregate
Дата
Msg-id 04092B5D-B935-4FCA-9587-4FE65E47E0A1@decibel.org
обсуждение исходный текст
Ответ на writing a MIN(RECORD) aggregate  (Sam Mason <sam@samason.me.uk>)
Ответы Re: writing a MIN(RECORD) aggregate  (Sam Mason <sam@samason.me.uk>)
Список pgsql-hackers
On Mar 20, 2008, at 2:23 PM, Sam Mason wrote:
> I'm trying to write a version of the MIN aggregate for values of  
> RECORD
> type.  I'm somewhat stuck on getting type information about the  
> argument
> out, I can determine how many attributes it's got but I can't seem  
> to do
> any better than that.  Does anyone have any good pointers into the  
> code
> for places to help me understand what's happening?
>
> The reason for doing this is mainly because I think it'd be nicer  
> to be
> doing things like:
>
>   SELECT i, (MIN((j,k))).k
>   FROM tbl
>   GROUP BY i;

How is that any better than SELECT i, min(k) FROM tbl GROUP BY i ?

> instead of:
>
>   SELECT DISTINCT ON (i) i, k
>   FROM tbl
>   ORDER BY i,j,k;
>
> Which as far as I can tell should produce identical results, except  
> the
> first has cleaner semantics.  It also allows you to combine MIN and  
> MAX
> in the same query, giving the value of k for the smallest and  
> largest j
> in this example--requiring two queries if it was done using the  
> DISTINCT
> ON method.

I don't see how min(record) even allows for that.

I'm not saying that min/avg/max/etc(RECORD) wouldn't be useful; I'm  
just failing to see the use in these examples.
-- 
Decibel!, aka Jim C. Nasby, Database Architect  decibel@decibel.org
Give your computer some brain candy! www.distributed.net Team #1828



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

Предыдущее
От: Kenneth Marshall
Дата:
Сообщение: Re: [GSoC] (Is it OK to choose items without % mark in theToDoList) && (is it an acceptable idea to build index on Flash Disk)
Следующее
От: Simon Riggs
Дата:
Сообщение: FETCH FIRST