skillup

技術ブログ

Database

CASE式のすすめ その3

投稿日:

本日もCASE式です。

下記のようなテーブル(studentclub)があるとします。

std_id | club_id | club_name | main_club_flg
——–+———+————–+—————
100 | 1 | 野球 | Y
100 | 2 | 吹奏楽 | N
200 | 2 | 吹奏楽 | N
200 | 3 | バドミントン | Y
200 | 4 | サッカー | N
300 | 4 | サッカー | N
400 | 5 | 水泳 | N
500 | 6 | 囲碁 | N

ここで下記のような実行を行います。

  • ここで1つのクラブに所属している学生はクラブIDを取得
  • 複数のクラブに入っている場合はmain_club_flgが立っているクラブIDを取得

第一ステップ
std_id,と列数を出す

これをベースに肉付けしていきます。

第二ステップ

std_id | main_club
——–+———–
100 | 1
200 | 3
300 | 4
400 | 5
500 | 6

このように集計関数のなかで書くとGROUP BYされたなかで条件分岐をさせることができます。

-Database
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

データベース設計のアンチパターン リトライ+バッチ分割+バッチの再利用不可

Contents1 リトライ1.1 デメリット1.2 対策2 バッチ分割2.1 デメリット2.2 対策3 バッチ再利用不可3.1 デメリット3.2 対策 リトライ ※OLTP=オンライントランザクショ …

no image

MySQLでtext型が大量にあるもののリストア 

MySQLでのリストアについて。 先日実務でtext型のカラムが複数あるテーブルを読もうとしたら下記エラーがでてこけました。

なにやら …

no image

CASE+HAVING句

今回はCASEとHAVINGを組み合わせて、そこそこの難問を解いていきます。 まず下記のようなテーブル(testresults)があるとします。 student | class | sex | sco …

no image

DB負荷調査のセオリー

DB負荷などで見ておきたいことのまとめなど。(今のプロジェクトではSQLServerを使っていますが、他のデータベースでも同じかと思います。) 参考URL SQLServer: 現在実行中クエリのリア …

no image

DBの基礎 テーブルとは

CSSを学習したあとはデータベースの学習などを。 参考図書:「達人に学ぶDB設計指南書」基本的にはこれを読んでいきます。が、現状よくわからないところは飛ばしていきます・・・ Contents1 テーブ …

アーカイブ