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 codefor places to help me understand what's happening?The reason for doing this is mainly because I think it'd be nicer to bedoing 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 DISTINCTON 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 [EMAIL PROTECTED] Give your computer some brain candy! www.distributed.net Team #1828
smime.p7s
Description: S/MIME cryptographic signature