Re: Group By question

From: brian <brian(at)zijn-digital(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: Group By question
Date: 2007-10-18 22:13:23
Message-ID: 4717DA83.8000001@zijn-digital.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Jeff Lanzarotta wrote:
>
> Sam Mason <sam(at)samason(dot)me(dot)uk> wrote: On Tue, Oct 16, 2007 at 07:46:34AM -0700, Jeff Lanzarotta wrote:
>
>>Hello,
>>
>>I have a table that looks something like this:
>>
>>SKU Dept Col1 Col2 Col3
>>------- ------ ------- ------- ------
>>1 1 1 2 3
>>2 1 2 3 4
>>3 2 1 0 1
>>4 2 0 1 2
>>5 2 4 1 3
>>6 3 1 2 3
>>
>>I am having a problem trying to get the Is there a query that can do
>>something like this:
>>
>>select sku, dept, (col1 + col2) * col3) from table group by dept
>
>
> What are you expecting the group by to do here? It may be helpful if
> you show what you expect the output to be.
>
> Okay, actually the query is something like:
>
> select dept, (col1 + col2) * col3) from table group by dept
>
> So, the output would look something like:
>
> Dept Total
> ------ -------
> 1 26
> 2 18
> 3 9
>

Please don't top-post.

The problem may have been that you were selecting SKU (at least, in the
first example). But, as you're aggregating the columns, this is impossible.

SELECT Dept, SUM((Col1 + Col2) * col3) AS total
FROM foo
GROUP BY Dept
ORDER BY Dept;

dept | total
------+-------
1 | 29
2 | 18
3 | 9

(your example had an arithmetic error)

brian

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Jorge Godoy 2007-10-18 23:02:54 Re: Crosstab Problems
Previous Message Douglas McNaught 2007-10-18 22:06:31 Re: Re : Re : pg_dump SERIAL and SEQUENCE