Re: counting distinct values - Mailing list pgsql-sql

From Joseph Shraibman
Subject Re: counting distinct values
Date
Msg-id 393F0E82.E2F1F4A8@selectacast.net
Whole thread Raw
In response to Re: counting distinct values  (Bruce Momjian <pgman@candle.pha.pa.us>)
List pgsql-sql
Tom Lane wrote:
> 
> Joseph Shraibman <jks@selectacast.net> writes:
> >>>> Using the example from
> >>>> http://www.postgresql.org/docs/aw_pgsql_book/node59.html, what would I
> >>>> do if I wanted to know the number of different cities where I had a
> >>>> friend in each state?  select count(city) group by state; would not work
> >>>> because if you had two friends in the same city it would be counted
> >>>> twice.
> 
> Er, what's wrong with select count(distinct city) group by state?

I thought I tried that, but it didn't work the first time. <shrug> Guess
I mistyped something. Sorry.
> 
> > ... now suppose I want to have the number of distictive b's in the
> > results as well. I try:
> 
> > playpen=> select a, count(m.oid), avg(m.n), sum(m.n), (select
> > count(mm.oid) from tablem mm where m.a = mm.a group by mm.b ) from
> > tablem m group by a;
> > ERROR:  More than one tuple returned by a subselect used as an
> > expression.
> > playpen=>
> 
> > ... even though the subselect should only return one tuple.
> 
> Not unless there's only one b value for any one a value --- otherwise
> the sub-select will return one row per b group.  The error message looks
> correct to me.
> 
OK I thought that group by was eleminating duplicates which would then
be counted. That evolved from q simple select(*) ... group by that
worked.  Don't know where I screwed it up.


pgsql-sql by date:

Previous
From: Tom Lane
Date:
Subject: Re: counting distinct values
Next
From: "Hiroshi Inoue"
Date:
Subject: RE: [GENERAL] Re: oracle rownum equivalent?