Re: COUNT and GROUP BY performing strangely - Mailing list pgsql-novice

From Thomas Kellerer
Subject Re: COUNT and GROUP BY performing strangely
Date
Msg-id l4dh0n$7l0$1@ger.gmane.org
Whole thread Raw
In response to COUNT and GROUP BY performing strangely  (James David Smith <james.david.smith@gmail.com>)
List pgsql-novice
James David Smith, 25.10.2013 12:08:

> james_traffic=# SELECT  count(*) FROM stage;
>  count
> --------
>  430991
> (1 row)
>
> james_traffic=# SELECT bad_flag, count(bad_flag) FROM stage GROUP BY bad_flag;
>  bad_flag | count
> ----------+-------
>            |     0
>         1 |  4102
> (2 rows)
>
> james_traffic=# SELECT count(bad_flag) FROM stage;
>  count
> -------
>   4102
> (1 row)
>
>  I'm confused as to why the second query doesn't return this:
>
>  bad_flag  | count
> --------------+-------
>                | 426889
>         1     |  4102
>
> It should count the records surely, even if the field is blank/null ?
>

This is because count(bad_flag) is equivalent to count(*) where bad_flag is not null



pgsql-novice by date:

Previous
From: James David Smith
Date:
Subject: Re: COUNT and GROUP BY performing strangely
Next
From: James David Smith
Date:
Subject: Import from CSV error