我有一个看起来像这样的表:
+-----------------------------+
| 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 |
+-----------------------+
是否有单个查询可以实现此目的?
答案 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