![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
SQL初心者です。な~んだこんな事くらいと言わず教えてください。
テーブルに
A B C
------------
5 a b
7 c d
4 a d
5 f b
------------
というデータがあります。
これを
Bの列については、aとa以外
Cの列については、bとb以外
というようにグルーピングして、合計値を出したいと思っています。
結果として
a b 5
a b以外 4
a以外 b 5
a以外 b以外 7
という形の出力イメージです。
調べてみてcase when文を使えばいいなんてことをなんとなく理解しているのですが、group byと組み合わせてどのようにSQL文を書けばいいかわかりません。
SQL Serverを使っています。ご存知の方、ご教授ください。
No.3ベストアンサー
- 回答日時:
<Table1>
ID__A___B___C
1___5___a____b
2___7___c____d
3___4___a____d
4___5___f_____b
select patindex('%[a]%', B)+patindex('%[b]%', C)*2 As GroupNumber, * from table1;
|GROUPNUMBER|ID|A|B|C|
---|---------------------
1| 3| 1|5|a|b|
2| 0| 2|7|c|d|
3| 1| 3|4|a|d|
4| 2| 4|5|f|b|
このように Case文の多くは、数値に換算できることが多いです。
そして、見出しも、GROUPNUMBERで生成できます。
インラインビューが使えるならば、GROUPNUMBER を生成する記述も一回で済みます。
No.2
- 回答日時:
#とはいえとりあえずひんとだけでも。
V7.0以降なら使えるはず。常套手段として、
case 文で条件に合致するときに1,それ以外で0を返すようにして、
それを合計するというパターンがあります。返ってくるレコードは1件になるはずです。
テーブルをtableとして、
SELECT sum(A),
CASE B WHEN 'a' THEN 'Agr' ELSE 'ExceptA' END
CASE C WHEN 'b' THEN 'Bgr' ELSE 'ExceptB' END
FROM table1 GROUP BY B,C;
という感じでしょうか(まだ未実行)。
ありがとうございます。なんとなくやれそうな気がします。
No.1
- 回答日時:
自分なりに考えたSQLは、提示できないのですか?
ここの利用規約では、「分からないところを具体的に示し、質問する」ことになっています。「仕様を提示してSQLを作ってもらう」という行為は、「質問でなく、作業依頼」と判断されると削除されてしまう可能性があります。
>SQL Serverを使っています
バージョンを書きましょう。
誰かから、せっかく具体的なSQLの提示を受けても、質問者さんの環境では実行できないかも知れません。
例えば、インラインビュー(「select ~ from (select ~ from ~)」という書き方)、分析関数などは、SQL Server 2005で実装されています。
まず、バージョンはSQL Server2005です。
調べ方もわからず、このような質問になってしまい申し訳ありません。
ご迷惑をおかけするのも何ですから一旦取り下げます。
皆さんはSQL文がわからない場合、どのように調べて(考え)やっているのでしょうか…??
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Oracle SQLについて教えて下さい。 主キーを持ったカラムを主キーの機能を持たせたまま カンマ区切りで文字列 1 2023/03/27 22:47
- SQL Server 大学でSQLの授業があるのですが全くわかりません。 表ではなく文で説明されているのですが調べても理解 6 2022/07/20 02:26
- その他(プログラミング・Web制作) Rでのスクリプトのご相談 3 2022/12/08 16:22
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- システム 帳票出力を行う単体テストのテストデータが作成できません 2 2023/08/26 21:26
- IT・エンジニアリング 帳票出力を行う単体テストのテストデータが作成できません 2 2023/08/26 21:25
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- SQL Server AccessのInsertクエリのあとつづけてDeleteクエリを行いたいがSQLでどう書いたらいい 3 2023/05/27 14:12
- Excel(エクセル) EXCELの「接続」のSQLのコマンド文字列にて、セルから任意の数値を利用したい 2 2023/03/09 16:43
- Access(アクセス) Access VBAで条件を追加する(書き込む)場所 2 2022/03/23 12:05
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ORACLEで一番最初の結果だけを...
-
Oracle SQLにて固定長でデータ...
-
Oracleのビュー作成時に「指定...
-
DB2でREPLACEによる文字列の置換
-
ROWNUMについて
-
ある値以上の空き番の最小値を...
-
Excel 2019 のピボットテーブル...
-
エクセルVBAで5行目からオート...
-
「直需」の意味を教えてください
-
Oracle 2つのDate型の値の差を...
-
作番ってどういう意味でしょうか?
-
access2000:フォームで入力し...
-
Access テキスト型に対する指定...
-
異なるサーバのDBデータ同士を...
-
Accessでコードを入れると名前...
-
Accessでテーブル名やクエリ名...
-
ACCESSのクエリで集計で、先頭...
-
ACCESSで400以上のフィールドが...
-
セルの右クリックで出る項目を...
-
3つの表を1つに縦に連結する
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Oracleのビュー作成時に「指定...
-
ORACLEで一番最初の結果だけを...
-
Oracle SQLにて固定長でデータ...
-
ROWNUMについて
-
group by でselect
-
DB2でREPLACEによる文字列の置換
-
抽出結果を1件ずつ次の抽出条件...
-
ある値以上の空き番の最小値を...
-
Access フィールドに入力した数...
-
SQL の抽出方法
-
ある単位で集計した最小値を項...
-
時間の重複を加味した連続時間S...
-
sqlplusで日本語入力
-
sqlの条件文に関して
-
distinct で抽出したレコード件数
-
条件文を使ったグループ出力SQL文
-
SQLについて質問です。
-
同行内の最大値
-
WITH句で複数テーブルを定義す...
-
SQL2005 で 複数列でのユニー...
おすすめ情報