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

dbo*_*rba 12 mysql

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

示例:表具有日期列 - 查询应该能够生成在常量日期之前和之后的行数.

Bil*_*win 31

你正在使用MySQL,所以你可以利用它的特性,布尔表达式的计算结果为0表示假,1表示真.的SUM()1代的的是等于一个COUNT()其中表达式为真.

SELECT SUM( date_column < '2009-08-21' ) AS prior_to_date,
       SUM( date_column > '2009-08-21' ) AS after_date
FROM MyTable;
Run Code Online (Sandbox Code Playgroud)

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