我的问题是我想在一个查询中得到三个条件的计数。我知道我可以通过运行多个查询来执行此操作,但问题是我在一个查询中需要它
我的查询我的尝试是
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
答案 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