質問 |
||
| QNo.3527111 | SQLにて列の値を一まとめにしてカウントできないでしょうか? | |
|---|---|---|
| 質問者:luvelysion |
皆様はじめまして。SQL勉強中のものです。 本日はどうしても解決できないことがありますので質問させていただきます。 テーブルAにCONDITIONという列があり、そこには1〜5の値が入ります。 このCONDITION列に1〜5それぞれ何件あるかを取得したいと考えております。単純にcount関数にて1〜5のレコード数を取得するならば以下のSQLで取得可能と思います。 SELECT COUNT(CONDITION) FROM A WHERE CONDITION = '1' 以上をWHERE条件を変えて5回繰り返し。 これだと5回SQLを発行することになります。 これを一回のSQLにて取得できないかと悩んでおります。 皆様、どうかよろしくお願い致します。 |
|
困り度:
|
||
| 質問投稿日時: 07/11/18 02:16 |
||
回答良回答20pt |
|
| ANo.2 | これで試してみてください。 SELECT sum(case when CONDITION = '1' then 1 else 0 end) as cnt1, sum(case when CONDITION = '2' then 1 else 0 end) as cnt2, sum(case when CONDITION = '3' then 1 else 0 end) as cnt3, sum(case when CONDITION = '4' then 1 else 0 end) as cnt4, sum(case when CONDITION = '5' then 1 else 0 end) as cnt5 FROM A |
|---|---|
| 回答者:chibita_papa | |
| 種類:回答 どんな人:経験者 自信:自信あり |
|
| 回答日時: 07/11/18 06:26 |
|
| |
| この回答へのお礼 | 回答ありがとうございます。早速試してみたいと思います。まだまだ勉強不足ですのでこれからもがんばりたいと思います。 |
回答良回答10pt |
|
| ANo.1 | SQL serverは使ったこと無いのでよくわからないんですが GROUP BY 使えば一発かと思います。 SELECT CONDITION,COUNT(CONDITION) FROM A GROUP BY CONDITION あれこうだっけかな?検証してないのでちょっとあやふや(^_^;) [CONDITION],[COUNT(CONDITION)] 1,205 2,102 3,12 4,95 5,123 みたいな感じで取得できるようになる(はず・・・ |
|---|---|
| 回答者:inu2 | |
| 種類:回答 どんな人:一般人 自信:参考意見 |
|
| 回答日時: 07/11/18 02:26 |
|
| |
| この回答への補足 | さっそくの回答ありがとうございます。さらにお伺いしますが下記のような形で取得することは可能でしょうか。 [1],[2],[3],[4],[5] ← CONDITION列の値 205,102,12 ,95 ,123 ← それに対する件数 夜分遅くに申し訳ありませんがよろしくお願い致します。 |
| この回答へのお礼 | まことにありがとうございます。補足のほうに間違って書いてしまったのですが回答いただけるとありがたいです。よろしくお願い致します。 |