问题描述
|
在MysqL中是否可以执行以下操作:
SELECT COUNT(*) as totalcount,COUNT(*) WHERE foo IS NULL as conditional_count
FROM baz
即在一次选择中获得两项计数,一项全部,一项与WHERE子句匹配。
解决方法
如果您的数据库支持CASE WHEN语句,则此方法将起作用,否则,您仍然会了解基本思想。
SELECT COUNT(*),SUM(CASE WHEN FOO IS NULL THEN 1 ELSE 0 END) AS COUNT_CONDITIONAL
FROM baz
, 应该像“ѭ2”一样,这是一个查询,但是里面有子查询
, 选择count()作为totalcount,
(从zh-cn中选择COUNT()foo为NULL)
作为conditional_count FROM baz;
我无法将星号(*)放在计数括号之间!!!
我放了,但是我无法显示。
, 尝试使用UNION(未经测试)
SELECT COUNT(*) as totalcount FROM baz
UNION
SELECT COUNT(*) WHERE foo IS NULL as conditional_count FROM baz
, 我认为这是不可能的。我认为您需要两个查询。
Select count(*) from baz
Select count(foo) from baz where foo is null