SlideShare ist ein Scribd-Unternehmen logo
1 von 35
Ginza.rb / みんなのウェディング
くどう けんいち
まずは見てください
エンジニアじゃない同僚たちが
自分で作ったものです
エンジニアじゃない同僚たちとやった
SQLの勉強会について話します。
自己紹介
くどう(@ken1flan)
エンジニャー
趣味
● ヘタなイラスト
● 文具
● こまかいものをつくる
Ginza.rb
主催のひとり。にぎやかしでミートアップ募集ページの絵を描いてる。
よく徳用カルパスさん来てくれてます。
それで自分に登壇を持ちかけてくれた次第で、ここにいます。
みんなのウェディング
データ分析基盤の普及
2016年ごろ、誰でも使えるデータ分析基盤が整備https://blog.mwed.info/posts/wedding-
dwh-status-2016-06.html
↓
エンジニアやごく少数のエンジニア以外でSQLを使えるひとだけが利用
↓
便利さやだれでも使えることが馴染んできた
↓
SQLに興味を持つひとが増えてきたが、どうやって学んだらよいかわからない
背中をおした
データの分析をしたいので抽出してほしいという依頼がよくあった。
調整後抽出し直しもしばしば。
↓
それぞれでSQLが使えるように手助けしたら、仕事がラクになりそう
↓
みんなで勉強しましょう。わからないところは教えますから!
教材
SQL書き方ドリル
羽生 章洋/和田 省二/菅井 大輔
技術評論社
https://gihyo.jp/book/2016/978-4-7741-8066-3
業務で使うのはSELECTのみなので↓だけにしました。
● 2章 ひとつのテーブルを扱う
● 3章 複数のテーブルを扱う
ニ
ャ|
もくじより
第2章ひとつのテーブルを扱う
その1 データを取り出す 顧客一覧を出してくれ
その2 複数の列を指定する 商品ごとの単価を出してくれ
その3 列に別名をつける 項目の名前がわからない
その4 列の値に対して演算を行う 税込価格で一覧を出してくれ
その5 列同士で演算を行う 社員の健康状態を一覧で出してくれ
その6 文字列の連結を行う 名札を作ってくれ
その7 集合関数を使う 平均を教えてくれ
その8 ある条件でレコードを絞り込む(1) 身長が大きな人を
教えてくれ
その9 ある条件でレコードを絞り込む(2) 「〜子」という名
前の人の人数を教えてくれ
その10 列の値に条件を設定する 単価別にランク付けしてみて
くれ
その11 グループ単位で集計する 都道府県別の顧客数を教えて
くれ
その12 グループ単位で集計した結果を絞り込む(1) 顧客数が
3人以上の都道府県を教えてくれ
その13 グループ単位で集計した結果を絞り込む(2) 法人客の
数が2人以上の都道府県を教えてくれ
その14 クロス集計を行う 社員の血液型別の人数ってどうなっ
てるんだろう
その15 並び替えを行う 単価の安い順に商品名を出してくれ
その16 重複を排除する 住所一覧を出してくれ
第3章複数のテーブルを扱う
その1 副問い合わせを使う 販売数量がゼロの商品を教えてくれ
その2 複数テーブルの結合を行う(1) 再び都道府県別の顧客
数を教えてくれ
その3 複数テーブルの結合を行う(2) 部門別の平均給与額を
教えてくれ
その4 外部結合を使う 全部の商品の平均販売単価を教えてくれ
その5 自己結合を使う セット商品の候補を考えてくれ
その6 相関副問い合わせを使う 商品別の平均販売数量よりも多
く売れている日を教えてくれ
その7 UNION ALLを使う 顧客と社員の名前一覧を出してくれ
その8 UNIONを使う 重複のない顧客・社員の名前一覧にしてく
れ
その9 INTERSECTを使う 給料日に販売をした社員の一覧を出
してくれ
その10 EXCEPTを使う 販売をしたことがない社員の一覧を出
してくれ
形式
● 毎朝 9:30 〜 10:00
● 事前に予習してくる
○ 例題、解説を読む
○ 演習問題をやってくる
● 勉強会中にわからなかったことを訊く
● 解いてきた演習問題を前で発表する
● 1セクションあたり、1〜2回でやると、1ヶ月半〜2ヶ月程度かかる。
○ 長くなると続かないような気がしたので、あまり終わらないときには切り上げて次に進む感
じで…。
● 参加者は5人→10人(途中で増えました)
予習・発表の形式にしたねらい
デメリット
参加ハードルが上がってしまう
メリット
聴くだけでなく、手を動かしてほしい
発表することで、キチンとやってきたことをみんなでほめたい
発表できなかったひとも、同じ立場のひとが解いた事実から
自分もできそうだと思えそう
参加者がつまづいたところ
● WHERE
● 集計
● JOIN
● UNION
● 整数と実数の演算結果の差
● 日付、タイムスタンプ、UNIX時間の間の変換、タイムゾーン
● 関数の入れ子が苦手
● NULLと0
● カラムの横持ちのときのCASE
● 副問合せ
とことん付き合うことにした
理解が浅くなるセクションが増える
せっかく勉強会をやってもSQLを使えるようになれないかも…
エンジニアの仕事が減らない
勉強会中の様子を見たとき「使えるようになりたい」という気持ちが強そう
期間が延びてしまっても続けてがんばってくれそう
やりきろう
期間が延びてもいいや
ドリルをちゃんと全部解いてもらうぞ
いろいろくふうしました💡
💡 参加意欲に関するくふう
むずかしくなってきたのでテンションが落ち気味っぽかったので、楽しくしたい
● 発表シール
○ 演習問題の回答を前で発表してくれたひとに
○ 金色のシールをプレゼント
● 出席シール
○ 勉強会に出席したひとに
○ 銀色の小さいシールをプレゼント
書き込み式のドリルと相性最高
がんばった様子がひと目でわかる!
💡 解き方に関するくふう(1)
● 自分が仕事で書いたクエリをシェア
○ 誰かが使っているものというと生々しいでしょ?
○ SELECTで出すときにいろいろしたりするし…
○ そういうところを見て、ちょっとしたコツを掴んでもらえれば…。
● 例題のライブコーディング
○ ドリルは書き順があってよいのですが、一回で書き上げています。
○ 参加者も同じように一回で書こうとして、エラーで困ったりしてました…。
○ ホントは一回で書かないですよね?
○ 普段自分が書く雰囲気を伝えたかったので、試行錯誤しながら解いていく様子を見せました。
💡 解き方に関するくふう(2)
● ベン図の紹介
○ エンジニア以外のひとたちは集合や論理演算に慣れていません
○ WHEREのところでANDやORを使うところで違和感を感じ…UNIONで気づきました。
○ イメージで補助するツールとして紹介しました。
● テーブル関連図をみんなで描いてもらう
○ JOINがなかなか飲み込めてなさそうでした。
○ 実際に線をひっぱってもらいました。
💡 復習に関するくふう
● 分析用データベースを使った復習問題
○ 次のセクションの前に、前回の復習を出しました
○ 分析用のデータベースを使ったので、仕事にすぐ活かせそうで、やる気が湧いていた。
● 章末で参加者同士で作った復習問題
○ 章が終わったタイミングでやりました。
○ 分析用のデータベースを使ってお互いに出してもらう形式です。
○ 出題者が解答も準備してもらうので、復習必須。
○ ひとに問題を出すのって、身の入り方が違うでしょ
実際にかかった時間
第2章 ひとつのテーブルを扱う
07/04 その1 データを取り出す
07/05 その2 複数の列を指定する
07/06 その3 列に別名をつける
07/09 その4 列の値に対して演算を行う
07/11 その5 列同士で演算を行う
07/12 その6 文字列の連結を行う
07/18 その7 集合関数を使う
07/19 その8 ある条件でレコードを絞り込む(1)
07/23 mwedのデータをある条件で絞り込む
07/24 mwedのデータをある条件で絞り込む
07/25 その9 ある条件でレコードを絞り込む(2)
07/26 その10 列の値に条件を設定する
07/27 その11 グループ単位で集計する
07/30 その12 グループ単位で集計した結果を絞り込む(1)
08/01 その13 グループ単位で集計した結果を絞り込む(2)
08/02 その14 クロス集計を行う
08/03 その14 クロス集計を行う(つづき)
08/06 その14 クロス集計を行う(つづき)
08/08 その15 並び替えを行う
08/16 その15 並び替えを行う(つづき)
08/17 その16 重複を排除する
08/21 みんなの2章復習問題(1)
08/23 みんなの2章復習問題(2)
08/24 みんなの2章復習問題(3)
第3章 複数のテーブルを扱う
08/27 その1 副問合せを使う
08/29 その1 副問合せを使う
08/30 その2 複数テーブルの結合を行う(1)
08/31 その2 複数テーブルの結合を行う(1)
09/03 その3 複数テーブルの結合を行う(1)
09/05 その3 複数テーブルの結合を行う(2)
09/06 その3 複数テーブルの結合を行う(2)
09/07 その4 外部結合を使う
09/10 その4 外部結合を使う
09/12 その4 外部結合を使う
09/11 その4 外部結合を使う
09/12 その4 外部結合を使う
09/13 その5 自己結合を使う
09/14 週番号を得る
09/18 その5 自己結合を使う
09/19 その5 自己結合を使う
09/20 その6 相関副問合せを使う
09/25 その6 相関副問合せを使う
09/26 その6 相関副問合せを使う
09/27 その6 相関副問合せを使う
10/03 その7 UNION ALLを使う
10/04 その7 UNION ALLを使う/その8 UNIONを使う
10/05 その8 UNIONを使う
10/09 その8 UNIONを使う/その9 INTERSECTを使う
10/10 その9 INTERSECTを使う
10/11 その9 INTERSECTを使う
10/12 テーブルの関連を図に描く
10/15 その10 EXCEPTを使う
10/16 みんなの3章復習問題
10/17 みんなの3章復習問題
10/18 みんなの3章復習問題
10/19 みんなの3章復習問題
10/20 みんなの3章復習問題
10/23 みんなの3章復習問題
10/24 みんなの3章復習問題
10/25 みんなの3章復習問題
10/29 みんなの3章復習問題
10/31 みんなの3章復習問題
11/01 みんなの3章復習問題
11/02 みんなの3章復習問題
11/05 みんなの3章復習問題
11/06 みんなの3章復習問題
11/08 みんなの3章復習問題
11/09 みんなの3章復習問題
11/12 join/union/with
11/13 redash visualization
11/14 その他
11/15 その他
11/16 その他
WHERE
復習
LEFT
OUTER
JOIN
相関
副問合せ
テーブルの関連図
復習
グラフ化な
ど補足
💡 打ち上げに関するくふう
長い時間かけてやってきたのですから。
● 卒業シール!
○ 金のペンでニャーQLとかいてあります。
● 打ち上げランチ
○ ちょっと高いランチ
○ ノンアルコールスパークリングワイン
終わってみて
理解度アンケート(n=7)
第2章ひとつのテーブルを扱う
その1 データを取り出す 顧客一覧を出してくれ
その2 複数の列を指定する 商品ごとの単価を出してくれ
その3 列に別名をつける 項目の名前がわからない
その4 列の値に対して演算を行う 税込価格で一覧を出してくれ
その5 列同士で演算を行う 社員の健康状態を一覧で出してくれ
その6 文字列の連結を行う 名札を作ってくれ
その7 集合関数を使う 平均を教えてくれ
その8 ある条件でレコードを絞り込む(1) 身長が大きな人を
教えてくれ
その9 ある条件でレコードを絞り込む(2) 「〜子」という名
前の人の人数を教えてくれ
その10 列の値に条件を設定する 単価別にランク付けしてみて
くれ
その11 グループ単位で集計する 都道府県別の顧客数を教えて
くれ
その12 グループ単位で集計した結果を絞り込む(1) 顧客数が
3人以上の都道府県を教えてくれ
その13 グループ単位で集計した結果を絞り込む(2) 法人客の
数が2人以上の都道府県を教えてくれ
その14 クロス集計を行う 社員の血液型別の人数ってどうなっ
てるんだろう
その15 並び替えを行う 単価の安い順に商品名を出してくれ
その16 重複を排除する 住所一覧を出してくれ
第3章複数のテーブルを扱う
その1 副問い合わせを使う 販売数量がゼロの商品を教えてくれ
その2 複数テーブルの結合を行う(1) 再び都道府県別の顧客
数を教えてくれ
その3 複数テーブルの結合を行う(2) 部門別の平均給与額を
教えてくれ
その4 外部結合を使う 全部の商品の平均販売単価を教えてくれ
その5 自己結合を使う セット商品の候補を考えてくれ
その6 相関副問い合わせを使う 商品別の平均販売数量よりも多
く売れている日を教えてくれ
その7 UNION ALLを使う 顧客と社員の名前一覧を出してくれ
その8 UNIONを使う 重複のない顧客・社員の名前一覧にしてく
れ
その9 INTERSECTを使う 給料日に販売をした社員の一覧を出
してくれ
その10 EXCEPTを使う 販売をしたことがない社員の一覧を出
してくれ
実際の活用度合い
まとめ
● 自分でデータを活用したいひとはたくさん
● 自在に取り出すためのSQLがハードル
● 各々で学習するのは二の足を踏んでるが、サポートすればやるひとは多い
● サポートは…長期にわたるので覚悟はいる
● データを活用したいひとは、学習後に本当に活用している!
ぜひ、みなさんも
エンジニアでない人たちのSQLの勉強をサポートして、
自分の手を使わずに
業務改善をしてもらったり、開発スピードをあげてください!
資料について
このスライドは
@ken1flanのTwitterなどで公開します。
ほぼ同じものを くふうカンパニー Advent Calendar 2018 で公開します
https://qiita.com/advent-calendar/2018/kufu
このスライドで使ったイラストは…
LINEスタンプとして販売…はわかりません。
ご清聴
ありがとうございました
質問ありましたらどうぞー

Weitere ähnliche Inhalte

Was ist angesagt?

15分でできるSQLインジェクション
15分でできるSQLインジェクション15分でできるSQLインジェクション
15分でできるSQLインジェクションよしだ あつし
 
20170213 yochiyochi.rb / ただRailsで使われていないメソッドを削除したい人生だった
20170213 yochiyochi.rb / ただRailsで使われていないメソッドを削除したい人生だった20170213 yochiyochi.rb / ただRailsで使われていないメソッドを削除したい人生だった
20170213 yochiyochi.rb / ただRailsで使われていないメソッドを削除したい人生だったYasuhiro Matsumura
 
名古屋Ruby会議02 LT:Ruby中級への道
名古屋Ruby会議02 LT:Ruby中級への道名古屋Ruby会議02 LT:Ruby中級への道
名古屋Ruby会議02 LT:Ruby中級への道Shigeru UCHIYAMA
 
名古屋Scala勉強会のご紹介@OSC2010名古屋
名古屋Scala勉強会のご紹介@OSC2010名古屋名古屋Scala勉強会のご紹介@OSC2010名古屋
名古屋Scala勉強会のご紹介@OSC2010名古屋Ryo RKTM
 
僕はどうしてもLibsassが使いたかったんだ!
僕はどうしてもLibsassが使いたかったんだ!僕はどうしてもLibsassが使いたかったんだ!
僕はどうしてもLibsassが使いたかったんだ!Masato Noguchi
 
自己紹介LT(公開版)
自己紹介LT(公開版)自己紹介LT(公開版)
自己紹介LT(公開版)Ken Muryoi
 

Was ist angesagt? (6)

15分でできるSQLインジェクション
15分でできるSQLインジェクション15分でできるSQLインジェクション
15分でできるSQLインジェクション
 
20170213 yochiyochi.rb / ただRailsで使われていないメソッドを削除したい人生だった
20170213 yochiyochi.rb / ただRailsで使われていないメソッドを削除したい人生だった20170213 yochiyochi.rb / ただRailsで使われていないメソッドを削除したい人生だった
20170213 yochiyochi.rb / ただRailsで使われていないメソッドを削除したい人生だった
 
名古屋Ruby会議02 LT:Ruby中級への道
名古屋Ruby会議02 LT:Ruby中級への道名古屋Ruby会議02 LT:Ruby中級への道
名古屋Ruby会議02 LT:Ruby中級への道
 
名古屋Scala勉強会のご紹介@OSC2010名古屋
名古屋Scala勉強会のご紹介@OSC2010名古屋名古屋Scala勉強会のご紹介@OSC2010名古屋
名古屋Scala勉強会のご紹介@OSC2010名古屋
 
僕はどうしてもLibsassが使いたかったんだ!
僕はどうしてもLibsassが使いたかったんだ!僕はどうしてもLibsassが使いたかったんだ!
僕はどうしてもLibsassが使いたかったんだ!
 
自己紹介LT(公開版)
自己紹介LT(公開版)自己紹介LT(公開版)
自己紹介LT(公開版)
 

ニャーQL勉強会(エンジニアでないメンバーがSQLを身につける勉強会)

Hinweis der Redaktion

  1. ニャーQL勉強会と題しまして、くどうがお話しさせていただきます。
  2. まあ、まずみてください。SQLなんですよ。 小さいんですが、よーく目を凝らして見ていただくとですね、CASEやらJOINやらいろいろ使っているのがわかるかと思います。わからなくても、雰囲気くらい感じられますかねえ…。
  3. これらのクエリは、エンジニアじゃない同僚たちが自分で作って、使っているものです。
  4. 今日は、エンジニアじゃない同僚たちとやった、SQLの勉強会についてお話しさせていただきます。
  5. 私は何者かといいますと… くどうといいまして…。 ヘタクソなイラストを描いたり、文具や、本格的でない、こまかいものをなんか作ることが趣味です。
  6. Ginza.rbの主催のひとりで、ミートアップの募集ページを作ったりする、にぎやかしの担当です。 RailsDMの主催をされているカルパスさんがよく来てくれまして… 今回、登壇を持ちかけてくれ、ここにいる次第です。 毎月第3火曜日にやっていて、募集ページは開催日の一週間くらい前にオープンする感じです。 次は再来週の火曜日、12月18日で、Ruby2.6についてワイワイ話し合おうという感じです。 月曜日中には募集ページをオープンしますので、ぜひ遊びにきてくださいまし。 会場を見ると、来てくださってる方も結構いるようで、いつもありがとうございます。
  7. それから、自分はみんなのウェディングで、エンジニャーとして働いています。 みんなのウェデイングはみなさん、ご存知でしょうか? 結婚式場さんと普通の花嫁花婿の知識差を、みんなの口コミで補うことによって、よい結婚式を増やそうとしているサービスです。 社員全部で100人くらい、エンジニアは15人くらいです。エンジニアの割合が少ないでしょ…? 少しずつエンジニアじゃなきゃできない、ということを減らしていければなぁ、と思って最近いろいろしています。
  8. みんなのウェディングには、データ分析基盤として、サービスで使っているデータベースの内容や、アクセスログその他もろもろをRedshiftに分析用データベースとして集めていて、だれでも分析したりシェアしたりしやすいようにRedashを置いています。整備したのは 2016年 くらいです。ブログもあるので、細かいことはそちらをみてください。 最初はエンジニアやごく少数のエンジニア以外でSQLを使えるひとが使っていました。便利さや誰でも使えるということが伝わってきたようで、SQLに興味を持つひとがちらほらでてきました。ただ、自分で始めるようとするには少しハードルが高そうでした…。
  9. 以前はよく、データの分析をしたいのでデータをまとめて出してほしい、ということをよくエンジニアが頼まれていました。データを出してから条件を調整したいので出し直してといわれることもしばしば。しかも、一度で済むわけもありません。何度も何度も出し直し、時間がかかっていました。 そこに持ち込まれる内容で、分析用データベースにある情報だけでわかる内容もぼちぼちありました。 もしかして、みんなにSQLを使えるようになってもらったら、俺たち、仕事ラクになるんじゃ? そんなハッピーな未来を妄想して、二の足を踏んでる同僚達の背中を押すべく… 「みんなで集まってSQLの勉強会やろうよ。困ったら手助けするからさ!」 こんなふうに言ったら、始まったのでした。 (ここまで5分)
  10. あらためまして…。 ニャーQL勉強会とは エンジニア以外のひとが集まって、SQLを書けるようになるための勉強会です。 ニャーQLっていうのは、参加者のひとりが言ってくれたフレーズで、自分で言いだしたわけじゃないんです。こういうキャッチーな言葉をサッと言えるようになりたいですねえ…。
  11. 勉強会といっても、別にプロの講師でもなんでもないので、教材を持ってるわけじゃないです…。 (クリック) ですので、弊社の書棚にあったこの本を使うことにしました。 特徴として、SQLの簡単な解説と例題があり、それを使った演習問題をこなしながら進めていく点があります。 読むだけでなく、実際にSQLを書いて動かして結果を見れる点と、書く順序について書かれているので、非常に覚えやすそうでした。 INSERTやUPDATE、CREATE TABLEなども扱ってますが…。業務で扱えるのは、危険を伴わないSELECTだけと思い、ひとつのテーブルを扱う2章、複数のテーブルを扱う3章までにしました。
  12. 本の目次から持ってきたんですが…小さくて見えないですよね。 なんとなく小さなステップを刻んでいく感じなのは…伝わりますか。 ひとつのテーブルを扱う2章は16セクション、複数のテーブルを扱う3章は10セクション。合計26セクションで構成されています。基本を覚えるところが手厚めです。
  13. やり方なんですが…。 毎朝 9:30 から 30分、事前に予習してきたことについて、わからないことを訊いてもらったり、演習問題の回答を前で発表したりする形にしました。 期間はあまり長くなってしまうとみんな続かなくなってしまいそうなので短めにしたく… でも、26セクションもあって、数を見ると26セクション、毎日1〜2セクションで進んでも1ヶ月半から2ヶ月程度掛かりそうな予定でした。
  14. 少しハードルが高くなってしまうのはわかっていたのですが、勉強会の形式を、予習・発表の形式にしたのには狙いがありまして… 予習でやってもらう演習は実際に手を動かしてもらって、体で感じてほしくって… 回答を前で発表する形式をとったのは、予習をやってきたひとに活躍の場を作りたかったことと… 発表を見ているひとは、自分と同じ立場のひとが解いているんだと思えば、自分にもできる!と思えるかと思ったのでした。
  15. 始める前になんとなく、WHERE、COUNTやSUMなどの集計、複数テーブルをつなげるJOINあたりはつまづきそうと思っていたのですが… 実際に始めてみると… Redshiftきびしいな、整数の演算結果と実数の演算結果の違い、うちがUNIX時間で記録しているデータもあるからイケナイんですが、実データを扱うときに日付やタイムスタンプへの相互変換があったり、当然タイムゾーンなんかもでてきます… 日付の変換がいくつも関数を入れ子にするんですが、この関数の入れ子自体も苦手だったり、あるあるのNULLと0の差だったり… これ、ドリルについてた解答も間違ってたんですが、カラムの横持ちのときにCASEの条件をちゃんとするのが難しかったり、 副問合せ…他の方法で解決できることもあるものですから、なかなか使わないですね…自分もですが。 こんな感じで結構でてきて…どうしたものかと頭をなやませました。
  16. たくさんつまづくポイントがあるということは、理解の浅くなるセクションが多くなってしまうということで…。結果、SQLを実践で使えないままの可能性も高くなってしまう…。ということは…エンジニアから仕事を渡せないということになってしまいます。 (クリック) 一方で勉強会中の参加者の様子を観察していたのですが、「使えるようになりたい」という気持ちが強そうで、勉強会の期間が延びてしまっても続けてがんばりそうな感じに見受けられました。 (クリック) ですので…自分も覚悟し…。 スケジュールどおりに進めるのは諦め、各セクションで参加者の誰かが演習問題をちゃんと解けることがわかるまで終わらない、つまりとことん付き合っていくことを決めました。
  17. どうしたらみんなできるようになるかなー、と参加者の様子を見ながらアレコレくふうしてきました。
  18. むずかしくなってきて、少しヘコみ気味なように見えました。 少し楽しさを持たせて、勉強会を続ける気持ちを後押ししたかったので…。 予習してきた演習問題を発表してくれたら金のシールをプレゼント。 勉強会に参加したら、金のシールより小さい銀のシールをプレゼント。 実はシールの色はこだわりました。シール自体は普通のものですが、金や銀だと、青とか赤とかの普通の色よりなんか特別あるでしょ? プレゼントしたら、写真のように、みんなドリルに貼ってくれました。やってる感がめっちゃ出てませんか?
  19. 解き方についても少し工夫しました。 仕事で実際に頼まれて書いたときに、みんなが読んでわかりそうなときにはシェアするようにしました。サンプルのなまなましさや、ちょっとした書き方のコツを伝えたかった感じです。 ドリルは書き順が書かれているんですが、試行錯誤的なことをせずに一気に書き上げてます。前で演習問題を書いている様子を見てると、大きなクエリを一気に書いたはいいが、どこかまちがってて動かず…間違いを探せずに困ってることもよくありました。実際にはそんなに一気に書くことはしないですよね。小さい部分に分けてそれぞれを完成させてからつなぎ合わせて作りませんか?そういったことを伝えたくて、例題を普段のように回答して見せました。 こういうのマヂ苦手なんですけどね…。
  20. エンジニア以外のひとたちは集合や論理演算に慣れていません。WHEREでANDやORを使うところで少し違和感を感じていて、UNIONであっと気づいて…。イメージで補助するツールとしてベン図を紹介しました。 それから、複数のテーブルをJOINして使うところを終わり近くまでうまく飲み込めてなかったようでしたので、テーブルの関連図をみんなで描きました。みんななるほどーという顔をしていました…。もう少し早く思いつけばよかったんですが、まあ仕方なし…。 同じようなことをされる方は、複数テーブルを扱う前に一度やってみるとよさそうです。
  21. 問題がなかなかむずかしくなってきて、理解がまだ浅めに見えました。うちは分析用のデータベースが誰でも使える状態にあるので、ここから復習用問題をセクションが終わるごとに出すようにしました。仕事にすぐ活かせそうなこともあって、みんな真剣にやってくれました。 章が終わったタイミングで、みんなに分析用データベースを使って、お互いに復習問題を作って、解いてもらいました。 もちろん、解ける問題を作ってもらうので、復習必須、身の入りようがちがうでしょ?
  22. 実際に掛かった時間ですが… 7月4日から始めて… (クリック) WHEREを実データを使った例を加えてやったので少し長くなって… 単一テーブルを扱う2章が終わったのが8月17日、その後3回みんなで出し合った復習問題をやって… (クリック) 8月27日から3章に入り…。 (クリック) 外部結合で少し苦戦してますね。 (クリック) 相関副問合せも苦労しています。 (クリック) 3章も終わりになってようやくテーブルの関連を書くことに気づきました (クリック) 10月16日からまたみんなで出しあう復習問題が…できることが増えて難問続出で…一ヶ月くらいやってました。 (クリック) 最後に自由な質問や、redashでグラフを描いたりしていました。 5ヶ月くらいやっていたんですねえ…。
  23. みんな長い時間をかけてがんばってきたんですから、打ち上げもしました。 ここも少し遊びを入れています。 趣味のシールづくりを活かして、卒業シールをあげました。 金色のペンでニャーQLと手書きで入れてあります。ドリルに貼ってくれると、終わった感が出ますよねえ。 卒業ランチと称して、みんなでちょっと高いお弁当を買ってきてランチ会をしました。 個人的におすすめしたいのは、ノンアルコールのスパークリングワイン。 特別感が出せます。 (ここまで13分)
  24. 終わってみて、という話ですが…
  25. 終わったあとにアンケートを取りました。 各セクションどれくらい理解できたかな?とか自信のほどとか…。 小さいしうまく並んでないので申し訳ないですが… 小さいぴょこぴょこしたのがグラフで、セクション名に近いほうが「わからない」離れている方が「わかった」になっていて、5段階評価になっています。縦軸は人数ですね。 アンケートは途中で参加できなくなってしまったひとも含まれています。 ひとつのテーブルを扱うところは…CASEを駆使するクロス集計と、集計とWHEREを組み合わせたりするところがまだ苦手そうです。 複数のテーブルを扱うところは…JOINが苦手そうです…。だいぶがんばったんですけどね。
  26. まとめて答えてもらったのがこちらで… ひとつのテーブルはだいたい大丈夫そう。
  27. 複数テーブルは…3〜5が4人もいるので、結構使えるひとが増えたんじゃないですかねえ…。
  28. 仕事で役に立ってますかって訊いたら、おおおー!みんな役に立っているっぽい。
  29. いろいろ感想的なのももらっています。 業務で使って工数削減できそうとか、少なくともSQLを読めそう感が出てきたとか、実データを使ったのがよかったとか… ただ、ほかの業務との兼ね合いでなかなか難しい場合もありますね…。
  30. 解析の仕方を…これは「10年戦えるデータ分析入門」かな… 復習会…たしかにまたなにかしたい気持ちもあります…。 エンジニアにどういうふうに頼めばよいかわかった…これだけでもマジ仕事がラクになります…。 自己学習時は投げ出しちゃってたけど…そうそう、みんなでやるとよいですよね。やったかいがありました。
  31. redashで管理用データベースも見れるようになっているので…参加者のクエリの作成数を活用度合いの指標として見てみました。 赤が参加者なのですが、急に増えているところがありますよね。 わりと勉強会を始めた直後くらいから参加者の保存しているクエリの数が増えてます。 しかもすごい量…。全体の作成数の半数近い…。 ちなみに自分はたくさん書く方ですが、参加者のほうに入れてないです。 ちゃんと事実として使ってくれているようで、本当に安心しました。
  32. ざっとまとめると… 自分でデータを活用したいひとはめっちゃたくさんいます。 でも、自在に取り出すためにはSQLがハードルで…各々学習するのに二の足を踏んでるひとも多いです。 勉強会のように場を用意し、サポートすればやるひとは多いと思います。 ただ、地がエンジニアでないので慣れてないことも多々あり、長期間になるのは覚悟したほうがいいです。 そのかわり、得るものは大きいと思います。今回の勉強会の参加者は本当に活用しています。 ぜひ、みなさんもエンジニアでない人たちのSQLの勉強のサポートをして、自分の手を使わずに業務改善をしてもらったり、データ分析をしてもらったりしてください!
  33. この資料はあとで公開します。 あと、ほぼ同じ内容のものを、グループ会社の面々が寄り集まって書いてる、アドベントカレンダーに寄稿します。まだまとめ終わってないので、このあとやります…>< アドベントカレンダーはグループ会社名義ですが、うちの元気のいい若者の提案なので…ちょっと自慢です。 というわけで、ぜひ見てほしいです。 それから…スライド中にありましたイラストはLINEスタンプとして販売…はどうしようかなあ? なんだよ、あちこちで使いまわすなよーという声が聞こえて来そうですが… いやいや、メディアミックスです!
  34. ご清聴ありがとうございました!