X-Original-To: pgsql-sql-postgresql.org@localhost.postgresql.org Received: from localhost (unknown [200.46.204.144]) by svr1.postgresql.org (Postfix) with ESMTP id 627E73B709B for ; Thu, 16 Dec 2004 11:41:48 +0000 (GMT) Received: from svr1.postgresql.org ([200.46.204.71]) by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024) with ESMTP id 22429-09 for ; Thu, 16 Dec 2004 11:41:38 +0000 (GMT) Received: from foradada.isolaweb.it (unknown [80.247.74.2]) by svr1.postgresql.org (Postfix) with ESMTP id 68DB33B687E for ; Thu, 16 Dec 2004 11:41:39 +0000 (GMT) Received: from ROBERTO.tekno-soft.it (ppp-217-133-165-5.cust-adsl.tiscali.it [217.133.165.5]) by foradada.isolaweb.it (8.12.8/linuxconf) with ESMTP id iBGBb1t7016896; Thu, 16 Dec 2004 12:37:01 +0100 Message-Id: <6.2.0.14.2.20041216124028.0593d8b0@mail.tekno-soft.it> X-Mailer: QUALCOMM Windows Eudora Version 6.2.0.14 Date: Thu, 16 Dec 2004 12:41:22 +0100 To: Janning Vygen From: Roberto Fichera Subject: Re: Query aid Cc: pgsql-sql@postgresql.org In-Reply-To: <200412161221.16018.vygen@gmx.de> References: <6.2.0.14.2.20041216110510.07500100@mail.isolaweb.it> <200412161221.16018.vygen@gmx.de> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed X-IsolaWEB-MailScanner-Information: Please contact the ISP for more information X-IsolaWEB-MailScanner: Found to be clean X-MailScanner-From: kernel@tekno-soft.it X-Virus-Scanned: by amavisd-new at hub.org X-Spam-Status: No, hits=0.05 tagged_above=0 required=5 tests=FORGED_RCVD_HELO X-Spam-Level: X-Archive-Number: 200412/105 X-Sequence-Number: 19725 At 12.21 16/12/2004, you wrote: >Am Donnerstag, 16. Dezember 2004 11:34 schrieb Roberto Fichera: > > Hi all, > > > > I have a table acct as (username, terminatedate, terminatecause) > > I would like to build a query which returns three columns orderd by data > > like: > > > > date_trunc( 'day', terminatedate ) | count(cause1) | count(cause2) > > > > where cause1/2 are two type of termination cause from the field > > terminatecause. > > > > for example acct table could be: > > > > user1|01/01/2004 01:01:01| error > > user2|01/01/2004 01:02:01| error > > user1|01/01/2004 02:00:01| normal > > user3|02/01/2004 10:00:01| normal > > user2|02/01/2004 10:10:01| error > > > > I would like to obtain: > > > > date |normal| error > > 01/01/2004| 1 | 2 > > 02/01/2004| 1 | 1 > >try something like this: > >SELECT > date_trunc( 'day', terminatedate ) AS day, > SUM( > CASE > WHEN cause = 'error' > THEN 1 > ELSE 0 > END > ) AS error_count, > SUM( > CASE > WHEN cause = 'normal' > THEN 1 > ELSE 0 > END > ) AS normal_count, > >FROM acct AS acct1 >GROUP BY day >ORDER BY day ASC; Many thanks! This works well :-)! >kind regards, >janning Roberto Fichera.