Re: distinct doesn't work

From: Viatcheslav Kalinin <vka(at)ipcb(dot)net>
To: stephen <mail(at)xesoftware(dot)com(dot)au>
Cc: "'Postgresql'" <pgsql-novice(at)postgresql(dot)org>
Subject: Re: distinct doesn't work
Date: 2007-07-06 16:41:37
Message-ID: 468E70C1.7050307@ipcb.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-novice

stephen wrote:
>
> Hi
>
> I am doing this:
>
> SELECT distinct cc.trader_id, t.credit_card_number, t.expiry_date,
> t.name_on_card,
> sum(to_number(cc.debit_credit,'999999.99')),cc.approval_number,
> t.business_name FROM credit_card_history AS cc INNER JOIN traders AS t
> USING (trader_id) GROUP by cc.trader_id, t.credit_card_number,
> t.expiry_date, t.name_on_card, cc.approval_number, t.business_name
> having sum(to_number(cc.debit_credit,'999999.99')) != 0
>
> And I expect to get one line as I only have I trader-id in my table(s)
> but I get this:
>
> 1493 4321442143314432 09/09 two duck -200 2 Duck Trading Company
>
> 1493 4321442143314432 09/09 two duck 200 5678 2 Duck Trading Company
>
> In fact I don’t actually expect to get any response as the sum should
> have summed to zero.
>
> Does anyone know what I am doing wrong?
>
> Stephen Choularton
>
> 0413 545 182
>
> 02 9999 2226
>
Disctinct is applied to the entire row (unless you have specified "on"
clause). In your case you might need to exclude grouping by
cc.approval_number to get the sum for the certain trader.

In response to

Browse pgsql-novice by date

  From Date Subject
Next Message Doug Johnson 2007-07-07 21:21:10 8.2 RETURNING functionality in a trigger
Previous Message stephen 2007-07-06 16:16:21 identifying last entry in a table