重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

val | num
-----------
9984 | 1
1234 | 1
9876 | 1
4567 | 1
9984 | 1
1234 | 1
9984 | 1

以上のようなテーブルで
SELECT COUNT(*) FROM table_name WHERE val = 9984
SELECT COUNT(*) FROM table_name WHERE val = 1234
SELECT COUNT(*) FROM table_name WHERE val = 9876
SELECT COUNT(*) FROM table_name WHERE val = 4567
のように4つ実行することなく1度に
9984 => 3
1234 => 2
9876 => 1
4567 => 1
という結果を得たいのですが方法はありますでしょうか?
ご教示お願いいたします。

A 回答 (1件)

select


sum( case when val=9984 then 1 else 0 end ) as cnt1,
sum( case when val=1234 then 1 else 0 end ) as cnt2,
sum( case when val=9876 then 1 else 0 end ) as cnt3,
sum( case when val=4567 then 1 else 0 end ) as cnt4
from テーブル
でやるか
select val,count(*) from テーブル
where val in ( 9984, 1234, 9876, 4567 )
group by val
でやるか
    • good
    • 0
この回答へのお礼

どちらかの方法で試してみます。ありがとうございました。

お礼日時:2009/04/16 22:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す

今、見られている記事はコレ!