Re: pivot table sql -- COUNT() not working as expected

From: Markus Bertheau <twanger(at)bluetwanger(dot)de>
To: kumar mcmillan <support-forums(at)farmdev(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: pivot table sql -- COUNT() not working as expected
Date: 2004-06-20 16:17:33
Message-ID: 1087748252.30887.7.camel@teetnang
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

В Вск, 20.06.2004, в 17:44, kumar mcmillan пишет:
> hi.
> I am using a pseudo "pivot table" SQL query to generate a report butI
> am totally stumped on why the COUNT() function isn't getting me
> theexpected results and was wondering if anyone has some ideas...
>
> it is for a statistical report showing which lead source a
> memberfollowed when creating a profile (i.e. CNN ad, Chicago Tribune
> ad,etc), grouped by age range.
>
> here is the SQL that should total up rows based each
> specificcondition, but doesn't:
>
> SELECT ms.display_name AS lead_source, EXTRACT(YEAR
> FROMAGE(pd.birth_date)) AS age_range,
> COUNT(CASE WHEN p.added_on BETWEEN '2004-03-07' AND '2004-03-14'
> THENp.profile_id ELSE 0 END) AS "Total 03/07/04",

You want

COUNT(CASE WHEN p.added_on BETWEEN '2004-03-07' AND '2004-03-14' THEN p.profile_id ELSE NULL END) AS "Total 03/07/04"

or

COUNT(CASE WHEN p.added_on BETWEEN '2004-03-07' AND '2004-03-14' THEN 1 ELSE NULL END) AS "Total 03/07/04"

or

COUNT(CASE WHEN p.added_on BETWEEN '2004-03-07' AND '2004-03-14' THEN 42 ELSE NULL END) AS "Total 03/07/04"

or

COUNT(CASE WHEN p.added_on BETWEEN '2004-03-07' AND '2004-03-14' THEN true ELSE NULL END) AS "Total 03/07/04"

which is all the same.

--
Markus Bertheau <twanger(at)bluetwanger(dot)de>

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Janio Rosa da Silva 2004-06-20 16:24:05 Postgresql installation.
Previous Message kumar mcmillan 2004-06-20 15:44:03 pivot table sql -- COUNT() not working as expected