2011-06-29 60 views
0

我有一個表列如下:如何在此查詢中計數?

ListID----   Status 

1---------    YES 

2---------    YES 

3----------    NO 

我想寫一個SQL語句將返回計數每個ListID其列地位「YES」。

如何創建此SQL語句,以便我可以將CountID設置爲0來獲取ListID 3?

請讓我知道。

+0

你能否闡釋輸出應該是什麼喜歡? –

回答

2

使用MySQL IF-function

如果狀態是YES,算上場。否則不計算它(0)。

SELECT ListID, SUM(IF(Status="YES",1,0)) 
FROM yourtable 
GROUP BY `ListID` 

結帳這個以前的答案:Get paid cash amount grouped by day

+0

感謝您的回覆。你可以讓我知道這個語句在SQLite中的樣子嗎? – meetpd

+0

1.使用SQL92 CASE更好2.使用解決了沒有特定關鍵字的probkem。 –

+0

你是什麼意思的日期('ListID').... 我看到這看起來很新,但我intresting –

0

您可以使用此招很:

說YES爲1,NO爲0 然後通過listId只是SUM(狀態)組。

0

對於這就夠了SQL92聲明:

SELECT ListId, COUNT(*) 
    FROM table 
GROUP BY ListId, Status 
HAVING Status = 'Yes' 
+0

stackoversflow寫錯誤,當我嘗試發佈此塊作爲代碼。 –

+0

@Dan D.謝謝。爲什麼我有錯誤? –

1

試試這個

SELECT ListID, SUM(decode(Status,'YES',1,0)) 
FROM yourtable 
GROUP BY ListID 
0
select status, count(ListID) 
from tablename 
group by status