鉴于表像集团由多个条件
| userid | active | anonymous |
| 1 | t | f |
| 2 | f | f |
| 3 | f | t |
我需要得到:
- 用户数
- 号与“主动” =真
- 的用户数量的用户'active'= false
- '匿名'= true的用户数
- “匿名”= false的用户数
单个查询。
至于现在,我只用工会解出来了:
SELECT count(*) FROM mytable
UNION ALL
SELECT count(*) FROM mytable where active
UNION ALL
SELECT count(*) FROM mytable where anonymous
所以我可以把第一号和找到简单的扣除非活动和非匿名用户。
有什么办法摆脱工会和计算的一些魔术和高效查询在PostgreSQL的9符合这些条件简单的记录是多少?
您忘记提及您的表的NOT NULL约束,主键,数据类型和其他相关信息。还有PostgreSQL 9.? - [第一*和*版本号的第二部分与主要版本相关。](http://www.postgresql.org/support/versioning/) – 2013-04-23 01:49:15