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

DBUtils活用 その2

以前DBUtilsの活用を書きましたが、他の使い方がわかったのでメモ 以前はSelectでList<エンティティ>を取得したのですが、List<Map>でも取得できます。 ソー …

no image

mavenのリモートリポジトリについて

JPAでO/Rマッパーに慣れてからというもの通常のSQLをごりごり書くのが億劫になってきました。 億劫というかいろいろとリスクがありますね。 問題点としてはコンパイルするときにエラーが検知できなかった …

no image

データベース設計のアンチパターン 重すぎるOLTP+Date型不統一+データ量想定が甘い

Contents1 重すぎるOLTP1.1 デメリット1.2 対策2 DATE型の型の不統一2.1 デメリット2.2 対策3 データ量の想定が甘い3.1 デメリット3.2 対策 重すぎるOLTP ※O …

no image

自己結合のイメージ

前回に引き続き結合について考えます。 例えば下記のようなテーブルがあり、重複行を削除するとします。 1 りんご 50 2 みかん 100 3 みかん 100 4 みかん 100 5 バナナ 80 この …

no image

Postgresメモ(データベース、スキーマ、他pgadminなど)

postgresをちょこちょこ触っており、超基礎的な事に関してMySQLでは触れられていないネタなどについて。 以前のリンク Postgresの基礎(主にMySQLとの違いなど) Contents1 …

アーカイブ