こんにちは、かっつです。
今回は、2024年4月13日(土)に開催しました『SQLスキルアップ勉強会(ウィンドウ関数編)』について、
色々と語りたいと思います。
3回目です。
今度こそ『技術的な内容メイン』でやりたいと思い、3回目を開催することにしました。
というのも過去2回は、設計の考え方を語るあまりに業務要件定義に偏った内容になってしまいました。
※過去2回のレポートはこちらへ↓↓↓
『SQLスキルアップ勉強会』開催レポ(※最後に告知あり)【Agent Grow Advent Calendar 2023:8日目】
そこで、特定の機能(関数)をテーマにして技術的な内容で完結しようと思ったわけです。
内容紹介
実際の資料を一部ご紹介します。
目的は以下の通りで「ウィンドウ関数って何?」をざっくり把握して頂ければという内容です。
約2時間。
演習は2つだけにして、それに関する解説を詳しくしようと考えました。
最初に:ウィンドウ関数とは?
ネットや書籍でよく見かける表現と、私の観点を並べて『要するにこういうこと』と紹介しています。
事前準備:テーマとデータ
演習で使うデータは、前回までよりシンプルにテーブル数を2つとしました。
項目数も最小限に抑えました。
演習で作成するデータは、2つのテーブルを結合した結果に関する内容です。
①『いつ』
②『何という品目が』
③『いくら売れたか』
演習①:集計結果のコントロール
演習1つ目は、売上の集計方法について様々な単位(パターン)を、元の明細行に追加するというものです。
いきなりウィンドウ関数を使うのではなく、まずは使わずにやってみてから
その後にウィンドウ関数を使う方法と比較します。
数種類の集計について、何で集計するのかは項目名の通りですが、
そのヒントを出しています。
さて、結果はどうだったのでしょうか?
それは参加者のみぞ知るということです。
演習②:不整合・一貫性不備の修正
演習2つ目は、私が実際に現場で経験した内容を盛り込みました。
何が問題なのか、分かりますか?
上記のようなデータにより『データ重複エラー』や『意図しない売上倍増』などが発生します。
そこで、業務要件に応じたデータの整合性・一貫性を保つように、補正する必要があります。
ここでウィンドウ関数の出番というわけです。
※使わなくても補正出来るが、すごく非効率なSQLとなる。
こちらも、結果はどうだったのでしょうか?
こちらも、参加者のみぞ知るということです。
まとめ
最後に、おさらいとして基本構文を紹介しました。
また、今回の勉強会だけでは紹介しきれない様々な集計関数があることも紹介しました。
次回以降もやるならば、残りの集計関数を扱いたいです。
ちなみに、実際のSQLを少しだけお見せするとこんな感じです。
裏話
実は不安だった;
事前に募集したところ、参加希望者は1名でした(参加者様、ありがとうございましたm(_ _)m)
正直、中止も検討しリーダー会議の懇親会で相談もしました。
ただ、メールで「出席したかったけど、予定が合わない」と連絡をして下さった方もおりましたので
まるっきり需要が無いわけではないと思い、開催しました。
原因はいくつか思い付きますが、一番の原因は案内に記載した条件だったと考えております。
◆必須スキル
※大変申し訳ございませんが、今回は以下すべての条件を満たす方々に限定させて頂きます。
・SELECT文を知っている(簡単なもの『SELECT * FROM [テーブル名]』で可)
・GROUP BY句を知っている
・ORDER BY句を知っている
門を狭めてしまい、抵抗を感じさせる表現だったのかもしれません。
ただ、ウィンドウ関数を扱うには最低条件なので悩みどころではありました。
次回以降、基本的な集計関数などの扱いからステップアップするようなやり方を検討したいと思います。
不安から一変
やってみたら、今までで一番手応えがありました。
会話しながら、都度質問などに受け答えしながら進められたのです。
「あれ?1対1も悪くないぞ?!」
最後に
そういうわけで、参加者の人数について悩みましたが
結論としては、勉強会は1人でも参加希望者がいらっしゃれば必ず開催します。
とはいえ、なるべく多くの人に共有出来るように私自身も更に勉強を重ねて、少しはカリスマ性を身に着けたいと思いますw
今後とも、よろしくお願いします!
今回は以上です。
ここまでお付き合い頂き、ありがとうございましたm(_ _)m