2017-07-28 19 views
0

我有一個表,看起來像這樣: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

你可以使用案例之時

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 
+0

這爲我工作 - 謝謝! –

+0

@MikeTimmons好,如果我的回答是正確的,請將其標記爲已接受...看到這裏如何 http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – scaisEdge

1

嘗試是這樣的

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

'sum'而不是'count'在這裏是正確的。 –

+0

@vkp - 是的..在假的情況下,它將返回零將被計數 –