2011-06-29 1 views
0

私は、次の列で一つのテーブルを持っている:このクエリでカウントを取得する方法は?

ListID----   Status 

1---------    YES 

2---------    YES 

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

私が「YES」としての地位を有する各ListID列の数を返しますSQL文を書きたいです。

このSQL文を作成すると、ListID 3をCountとして0にすることができますか?

お知らせください。

+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.特定のキーワードを使用して問題を解決することの使用。 –

+0

あなたは日付( 'ListID')で何を意味していますか? 私はこのことが私にとっては非常に新しく見えています..しかしintresting –

0

あなたは、この非常にトリックを使用することができます。

はYESが1で、NOがlistIdによって0 そしてちょうどSUM(ステータス)グループであると言います。

0

が十分SQL92文です:

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

stackoversflowはこのブロックをコードとして投稿しようとするとエラーになります。 –

+0

@Dan D.ありがとうございます。なぜ私はエラーがあるのですか? –

1

TRY THIS

SELECT ListID, SUM(decode(Status,'YES',1,0)) 
FROM yourtable 
GROUP BY ListID 
0
select status, count(ListID) 
from tablename 
group by status 
関連する問題