SQL - 表中数字匹配行的多个计数

时间:2017-07-28 15:46:02

标签: mysql sql

我有一个看起来像这样的表:

+-----------------------------+
| ID | item1 | item2 | item3  |
|  1 |    2  |   5   |   4    |
|  2 |    5  |   5   |   2    |
|  3 |    3  |   4   |   5    |
+-----------------------------+

ID是唯一的整数,3项列的值是整数,范围从1-5(可能为NULL)。我想要一个SQL语句,为每个项目列返回值大于或等于4的行数。因此,此查询的所需输出将是:

+-----------------------+
| item1 | item2 | item3 |
|    1  |   3   |   2   |
+-----------------------+

是否有单个查询可以实现此目的?

2 个答案:

答案 0 :(得分:2)

时可以使用案例总和
 select 
   sum( case when item1 > 4 then 1 else 0 end) as item1
  ,sum( case when item2 > 4 then 1 else 0 end) as item2
  ,sum( case when item3 > 4 then 1 else 0 end) as item3
from my_table 

答案 1 :(得分:1)

尝试这样的事情

Select
    Sum(item1>4) as item1, 
    Sum(item2>4) as item2, 
    Sum(item3>4) as item3 
From Yourtable