try

select zip, count(distinct id) from customer_service_date group by zip;

2010/12/14 Lee Hachadoorian <lee.hachadoor...@gmail.com>

> Hello,
>
> I'm trying to count customers who have received services by ZIP code,
> but I want to count each customer only once even though customers may
> have received services on multiple dates, and therefore appear in the
> table multiple times. There *is* a separate customers table, but because
> of dirty data, I cannot rely on it.
>
> The best I can come up with is:
>
> SELECT
>    zip, count(*) AS count_serviced
> FROM
>    (SELECT DISTINCT zip, id FROM customer_service_date) a
> GROUP BY
>    zip
> ;
>
> The table (with some irrelevant fields dropped) is:
>
> CREATE TABLE customer_service_date
> (
>  id integer,
>  address character varying,
>  city character varying,
>  state character varying,
>  zip character varying,
>  service_date date
> )
> ;
>
> The table is missing a primary key field, but it would be (id,
> service_date) if it had one.
>
> Any suggestions to improve this?
>
> Thanks,
> --Lee
>
> --
> Lee Hachadoorian
> PhD Student, Geography
> Program in Earth & Environmental Sciences
> CUNY Graduate Center
>
>
> --
> Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-sql
>

Reply via email to