SQL

HAVING + CASE + 集約関数で検索の幅を広げる

sql

達人SQL1-10の「集合にきめ細かな条件を設定する」のまとめです。

1より大きい値から始まる数列が連番か調べる

sql

達人SQL1-10の「欠番を探せ:発展版」のまとめです。

重複した部分集合を見つける

sql

達人SQL1-10の「一意集合と多重集合」のまとめです。

すべての値が揃った集合を抜き出す

sql

達人SQL1-10の「各隊、隊員点呼!」のまとめです。

連続する〇〇な区間を探す

sql

今回は、達人SQL1-9の「連続した特定条件を満たす数列の抽出」をまとめる

連番テーブルを使って欠番を求める

sql

前回、連続した番号をもったビューの作り方をまとめた。 今回は、これを使って「特定の数列の中から欠番を求める」というのをまとめる。

連番の作り方

sql

「達人に学ぶ SQL徹底指南書」の1-9の連番の作り方を読んだまとめ。

「全ての行について」を2重否定で攻略する。

sql

全称量化は「全ての行について〜」となっている表現のことで、これをSQLで実現する場合は「〜でない行が1つもない」という2重否定に変換する。 まずは、以下のようなテーブルについて考える。 id title score 1 A 100 1 B 80 1 C 80 2 A 80 2 B 95 3 A 40 3 …

達人に学ぶ SQL徹底指南書 1-4 まとめ

sql

「達人に学ぶ SQL徹底指南書」の1-4を読み終わった。 この章のタイトルは「HAVING句の力」となっていて、HAVING句を利用して集合の状態を調べるということを実践している。 ここでは、本の中に出てきた「歯抜けの有無の確認」「最頻値を求める」「中央値を求…

NULLを扱った時の不思議な挙動

sql

今読んでいる「達人に学ぶ SQL徹底指南書」の中でNULLの扱い方について出てきた。 これまで「IS NOT NULL書いとけばえんやろ!」ぐらいにしか思ってなかったので、いろいろ衝撃を受けた。 たとえば、以下のようなテーブルがあるとする。 name score cat 100 …

SQLでTIMESTAMP型を条件分にする時の書き方

SQL

SQLにあるデータで、TIMESTAMP型ってのがある。時間を管理するための型で、同じようなものにDATETIMEと言うのがある。 このTIMESTAMP型ですが、時間管理をする割には条件分を書く時は文字列みたいに書かないといけないようで、ちょっとはまった。例えば2014…