Re: SELECT counts
От | A. Kretschmer |
---|---|
Тема | Re: SELECT counts |
Дата | |
Msg-id | 20100721094312.GC20566@a-kretschmer.de обсуждение исходный текст |
Ответ на | SELECT counts (Jayadevan M <Jayadevan.Maymala@ibsplc.com>) |
Ответы |
Re: SELECT counts
|
Список | pgsql-novice |
First of all, please don't hijack other threads. In response to Jayadevan M : > Hello all, > > I have a table with id and status_v. > > create table myt (id integer, status_v varchar(10)); > insert into myt values (1,'I'); > insert into myt values (1,'P'); > insert into myt values (1,'T'); > insert into myt values (2,'P'); > > User gets counts of status records, filtered on some status_v like this > test=# select count(*), status_v from myt where status_v in ('I','P','X') > > group by status_v; > count | status_v > -------+---------- > 1 | I > 2 | P > (2 rows) > > Is there a way in which I can have the output as > 1 | I > 2 | P > 0 | X > > i.e., if there is not data, the count should be displayed as 0. test=*# select * from myt; id | status_v ----+---------- 1 | I 1 | P 1 | T 2 | P (4 rows) test=*# select foo.status_v, count(myt.status_v) from myt right join (select unnest(array['I','P','X']) as status_v) fooon foo.status_v=myt.status_v group by foo.status_v; status_v | count ----------+------- X | 0 I | 1 P | 2 (3 rows) Regards, Andreas -- Andreas Kretschmer Kontakt: Heynitz: 035242/47150, D1: 0160/7141639 (mehr: -> Header) GnuPG: 0x31720C99, 1006 CCB4 A326 1D42 6431 2EB0 389D 1DC2 3172 0C99
В списке pgsql-novice по дате отправления: