mySQL:基于不同标准的多个COUNT()

时间:2009-08-21 19:29:57

标签: mysql

好吧,我正在尝试做的是根据不同的标准在同一个表上执行不同的COUNT(),而不使用嵌套查询(效率)或子查询(因此可以将其作为视图)。这可能吗?

示例:一个表有一个日期列 - 查询应该能够产生&之前的行数。在一个不变的约会之后。

1 个答案:

答案 0 :(得分:31)

您正在使用MySQL,因此您可以利用其功能,布尔表达式的计算结果为0表示false,1表示true。 {1}的SUM()等于表达式为真的COUNT()

SELECT SUM( date_column < '2009-08-21' ) AS prior_to_date,
       SUM( date_column > '2009-08-21' ) AS after_date
FROM MyTable;

PS:不要在支持SQL标准行为的其他品牌数据库上尝试此操作,即布尔表达式产生布尔值,而不是0或1整数。