skillup

技術ブログ

Database

SQL基礎 複雑なSQLの組み方

投稿日:2016年10月16日 更新日:

SQLの本を見ますとかなり複雑なSQLが書かれていることが多いです。

これは頑張っても無理では・・・と思っていましたが、ポイントしては

  • 原則として必ず図に書く
  • まずは問題を細かく分割する
  • 細部から切り分けて部分を組み立てる(多くの場合SELECTで細かいテーブルに分ける)
  • 出力対象が値か単行か表をチェック
  • 変数がきつい場合はまず具体値で試す
  • それを組み合わせていく

こんな感じでしょうか。確かに私も実務でちょっと複雑なSQLを書いたときは図に書き出してやったところ問題点がすぐにつかめました。

困難は分割せよ、どんな学習もコツは同じですね。

本日新しく覚えたSQL構文

SIGN()

引数が正の数ならば1を返し、マイナスの数ならば-1を返す。同じ場合や文字は0を返す。

MySQL関数リファレンス 符号を調べる (SIGN)

rows between ウィンドウ開始点 and ウィンドウ終了点

分析関数。開始点と終了点を記して、その中での集計を行う。

SQL分析関数をさらに深く追求してみよう (1/2)

-Database
-

執筆者:


comment

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

関連記事

no image

フィールド以外のプロパティをエンティティに持たせる

JPAでは基本的に1テーブル、1クラスです。 このためプロパティは必然的にテーブルのフィールドに対応しています。 ただ、必ずしもプロパティだけでなく、臨時で持たせておきたい、プロパティがあったりします …

no image

slow-query-logについて

データベースを伴う部分でののチューニングですが、大きく分けると SQLを書き直す インデックスを張りなおす プログラム内部でキャッシュを有効化する 設定ファイルの修正 上記のようなかんじになるのではな …

no image

netbeansのJPQL補助機能

JPAでは基本的に生のSQLではなく、JPQLを使って書きます。 SQLでもタイプミスにイライラさせられることは多いのですが、JPQLはもっとですね・・・爆 そこで使えるのがNetbeansの入力補助 …

no image

NULLについて

「達人に学ぶSQL徹底指南書」を読み進めていきましたがNULLについていろいろ書いてあるのでメモリます。 Contents1 NULLには未知と適用不能の2パターンがある2 = NULL が使えず I …

no image

SQL基礎 ウィンドウ関数

SQLの基礎(主にSELECT)を whereはレコードに対しての集計、havingはレコードの集合に対しての集計 ビューは一時的なselect文なのでサブクエリとほぼ等価 条件分岐で出力項目を変えた …

アーカイブ