Thread: Re: max and sum function
hi list. does anyone here knows of a function that is similar to the sum function but involves more than one column? for example, i have a table with columns id, col1, col2 and col3. i want to get the max value from the three columns gruped by an id. what i came up with is something like this: max1=select max(one) from (select sum(col1) as one from table group by id); max2=select max(two) from (select sum(col2) as two from table group by id); max3=select max(three) from (select sum(col3) as three from table group by id); then i compare the 3 max values and get the maximum of the 3. is there an easier way to do this? thanks. ryanne
SELECT MAX(aa.res) from ((select sum(col1) as res from table group by id) UNION (select sum(col2) as res from table group by id) UNION (select sum(col3) as res from table group by id)) AS aa; ----- Original Message ----- From: "ryanne cruz" <ryanne.cruz@up.edu.ph> To: <pgsql-php@postgresql.org> Sent: Sunday, 23 March, 2003 9:47 AM Subject: Re: [PHP] max and sum function hi list. does anyone here knows of a function that is similar to the sum function but involves more than one column? for example, i have a table with columns id, col1, col2 and col3. i want to get the max value from the three columns gruped by an id. what i came up with is something like this: max1=select max(one) from (select sum(col1) as one from table group by id); max2=select max(two) from (select sum(col2) as two from table group by id); max3=select max(three) from (select sum(col3) as three from table group by id); then i compare the 3 max values and get the maximum of the 3. is there an easier way to do this? thanks. ryanne ---------------------------(end of broadcast)--------------------------- TIP 3: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to majordomo@postgresql.org so that your message can get through to the mailing list cleanly
"Waruna Geekiyanage" <waruna@nirmani.com> writes: > does anyone here knows of a function that is similar to the sum function but > involves more than one column? for example, i have a table with columns id, > col1, col2 and col3. i want to get the max value from the three columns > gruped > by an id. > > what i came up with is something like this: > > max1=select max(one) from (select sum(col1) as one from table group by id); > max2=select max(two) from (select sum(col2) as two from table group by id); > max3=select max(three) from (select sum(col3) as three from table group by > id); select int4larger(int4larger(max(one),max(two)),max(three)) from table group by id; I'm a bit stumped why it seems I have to use "int4larger" and just "larger" doesn't work like with most functions. There must be a right way to do it without hard coding the datatype. -- greg