获取多个条件的计数

时间:2013-03-21 05:40:10

标签: php mysql

我的问题是我想在一个查询中得到三个条件的计数。我知道我可以通过运行多个查询来执行此操作,但问题是我在一个查询中需要它

我的查询我的尝试是

SELECT COUNT( IF( da <3, da, 0 ) ) AS da1, 
       COUNT( IF( da <2, da, 0 ) ) AS da2, 
       COUNT( IF( da <1, da, 0 ) ) AS da3
FROM tv

结果是

4 4 4

但预期的结果是

2 1 0

da列表格中的数据是

3 2 1 3

3 个答案:

答案 0 :(得分:2)

SELECT SUM( IF( rr <3, 1, 0 ) ) AS da1, 
       SUM( IF( rr <2, 1, 0 ) ) AS da2, 
       SUM( IF( rr <1, 1, 0 ) ) AS da3
FROM tv;

答案 1 :(得分:0)

COUNT()需要与GROUP BY一起使用 - 我认为这可能是您的问题,请尝试按“da”进行分组。

答案 2 :(得分:0)

我刚刚为我的问题找到了解决方案,但 PSR的解决方案也是正确的

SELECT * 
FROM (

    SELECT COUNT( da ) AS da1
    FROM tv
    WHERE da <3
    ) AS da1, (

    SELECT COUNT( da ) AS da2
    FROM tv
    WHERE da <2
    ) AS da2, (

    SELECT COUNT( da ) AS da3
    FROM tv
    WHERE da <1
    ) AS da3