Redash・SQL勉強会

~目指せクエリ女子~

2020/11/06@co-ba ebisu 1F SALON 

いしばし げんき

非エンジニア向け勉強会シリーズ 



目次

❶ 自己紹介

❸ Redashの使い方

❷ 勉強会の目的・内容

❹ Redashの裏側

❺ SQLの勉強

自己紹介

Self Introduction 

Architect

石橋 弦樹(いしばし げんき)

● 2015年~ CyberAgentにエンジニアとして入社 

○ スマホ広告効果測定ツール 

○ 広告配信システム(DSP) 

● 2020年~ 不動産テックhomieに入社 

● 最近はNetflixの「startup:夢の扉」にハマってる 







自己紹介





会社概要

会社名  homie株式会社
代表   芝 隼人
従業員  25名(業務委託、アルバイト含 )
設立   2019年4月
資本金  7,700万円 





サービス

https://homie.co.jp

勉強会の目的

Purpose of Study 

● こんな悩みを解決したい

○ Redashって何?

○ Redashを使うとどんなものが見れるの?

○ 見たい指標・データがあるけど、どうしたらよい?

● データはみんなのもの

○ 欲しい人に情報は開かれているべき





勉強会の目的

● 定期的に数字を見てほしい

● 数字の裏側を推測できるようになって欲しい

● 自分で確認できる力を身につけて欲しい

● (クエリのメンテを手伝って...)

● データはみんなのもの

○ 欲しい人に情報は開かれているべき





勉強会の裏目的

Redashの使い方

How to use Redash 

● Redashとはデータの分析結果をわかりやすく可視化するツール





Redashの使い方

データ分析結果

● Redashの主な機能

○ Queries

○ Dashboard

○ Alert

○ その他





Redashの使い方

● Queriesは、1つのデータ抽出の結果





Redashの使い方 ~Queriesとは~

● データが更新されていない場合があるので、再実行してね





Redashの使い方 ~Queriesとは~

● Dashboardは、見たいクエリを一画面に集約





Redashの使い方 ~Dashboardとは~

● Alertは、しきい値を決めてメールやSlackに通知できる機能





Redashの使い方 ~Alertとは~

● RedashのURLをSlackにコピペするとグラフを自動投稿

○ slackのリマインダーと合わせると定期的に確認が可能





Redashの使い方 ~その他~

Redashの裏側

Under the food of Redash 

● Redash

● データベース

● SQL

● クエリ





Redashの裏側 ~用語説明~

● Redashとはデータの分析結果をわかりやすく可視化するツール





Redashの裏側 ~Redashとは~(再掲)

データ分析結果

● データベースとはデータの蓄積・検索をしやすくするためのもの





Redashの裏側 ~データベースとは~

データベース

日照時間の追加

データベース

3月の日照時間は?

163.1[h]

降水量の合計は?

1528.8[mm]

● SQLとはデータベースを操作するための言語





Redashの裏側 ~SQLとは~

データベース

3月の日照時間は?

163.1[h]

降水量の合計は?

1528.8[mm]

SELECT
`日照時間`
FROM `年間降水量と平均気温 `
WHERE `月` = ‘3月’
SQLで書かれた命令文

SELECT
SUM(`降水量`)
FROM `年間降水量と平均気温 `
● クエリとはSQLで書かれた命令文のこと





Redashの裏側 ~クエリとは~

データベース

3月の日照時間は?

163.1[h]

降水量の合計は?

1528.8[mm]

SELECT
`日照時間`
FROM `年間降水量と平均気温 `
WHERE `月` = ‘3月’
SELECT
SUM(`降水量`)
FROM `年間降水量と平均気温 `
クエリ

クエリ





Redash・データベース・SQL・クエリの関係性

データベース
クエリ女子
 Redash





Redash・データベース・SQL・クエリの関係性

① SQLで書かれたクエリ投げる

データベース
クエリ女子
 Redash





Redash・データベース・SQL・クエリの関係性

① SQLで書かれたクエリ投げる
 ② データベースにクエリ投げる

データベース
クエリ女子
 Redash





Redash・データベース・SQL・クエリの関係性

① SQLで書かれたクエリ投げる
 ② データベースにクエリ投げる

③ クエリに沿ったデータを返す

データベース
クエリ女子
 Redash





Redash・データベース・SQL・クエリの関係性

① SQLで書かれたクエリ投げる
 ② データベースにクエリ投げる

③ クエリに沿ったデータを返す

④ データを良い感じに可視化にする

データベース
クエリ女子
 Redash





Redash・データベース・SQL・クエリの関係性

① SQLで書かれたクエリ投げる
 ② データベースにクエリ投げる

③ クエリに沿ったデータを返す

④ データを良い感じに可視化にする

⑤ 良い感じに可視化されたデータ

データベース
クエリ女子
 Redash





Redash・データベース・SQL・クエリの関係性

水産業者
クエリ女子
 板前





Redash・データベース・SQL・クエリの関係性

① ギブ ミー カニ!
 ② ギブ ミー カニ

③ カニを返す

④ 食べやすいように加工

⑤ 食べやすいカニ

水産業者
クエリ女子
 板前





Redash・データベース・SQL・クエリの関係性

① カニ頂戴!

② ノー ジャパニーズ!

水産業者
クエリ女子
 板前





Redash・データベース・SQL・クエリの関係性

① SQLで書かれたクエリ投げる
 ② データベースにクエリ投げる

③ クエリに沿ったデータを返す

④ データを良い感じに可視化にする

⑤ 良い感じに可視化されたデータ

データベース
クエリ女子
 Redash





Redash・データベース・SQL・クエリの関係性

① SQLで書かれたクエリ投げる
 ② データベースにクエリ投げる

③ クエリに沿ったデータを返す

④ データを良い感じに可視化にする

⑤ 良い感じに可視化されたデータ

データベース
クエリ女子
 Redash

データベースが理解できる言語のSQLを習得する必要あり

SQLの勉強

Let’s study SQL 

● データ取得の基本構文

● 条件を絞ったデータの取得

● データの集計 

● テーブルの結合

● 条件分岐してカテゴライズ

● 実際のクエリのSQLを解読してみよう





SQLの勉強

● データ取得の基本構文

● 条件を絞ったデータの取得

● データの集計 ← 今日はこここまで

● テーブルの結合

● 条件分岐してカテゴライズ

● 実際のクエリのSQLを解読してみよう





SQLの勉強 (全3回)

● データ取得の基本構文

○ 

● 条件を絞ったデータの取得

○ 

● データの集計

○ 

○ 





SQLの勉強 ~各項目できること~

● データ取得の基本構文

○ ex. 待ち合わせ場所の取得

● 条件を絞ったデータの取得

○ ex. クライアントAの待ち合わせ場所の取得

● データの集計

○ ex. 今までのデータ件数

○ ex. クライアント別のデータ件数





SQLの勉強 ~各項目できること~

● テーブル...

● 行(row, ロー)...

● 列(column, カラム)...





SQLの勉強 ~用語説明~

● テーブル...2次元の表. 各列に何のデータが入るか定義されている

● 行(row, ロー)...表の横列で、データの一塊を表す

● 列(column, カラム)...表の縦列で、データにおける属性の一つを表す





SQLの勉強 ~用語説明~





SQLの勉強 ~用語説明~





SQLの勉強 ~用語説明~

テーブル





SQLの勉強 ~用語説明~

行(ロー)





SQLの勉強 ~用語説明~

列(カラム)





SQLの勉強 ~用語説明~

列(カラム)

各列にはどんなデータを入
れるか定義がある

● SQLのデータ取得構文

○ SELECT [カラム名] FROM [テーブル名]







SQLの勉強 ~データ取得の基本構文~



-- サンプルのテーブルから場所を取得
SELECT place FROM sample_table
● Let’s Try

○ サンプルのテーブルから場所を取得

○ 開始日時を取得

○ 場所と開始日時を取得

● Hint💡 

○ サンプルテーブル: sample_table

○ 場所: place

○ 開始日時: start_time





SQLの勉強 ~データ取得の基本構文~



● 条件付きデータ取得構文

○ SELECT [カラム名] FROM [テーブル名] WHERE [条件式]







SQLの勉強 ~条件を絞ってデータ取得~

-- client_id=3における場所を取得
SELECT
place
FROM sample_table
WHERE client_id = 3
● SQLにおける条件式の種類





SQLの勉強 ~条件を絞ってデータ取得~

a > b aがbより大きい
a < b aがbより小さい
a >= b aがb以上
a <= b aがb以下
a = b aとbが等しい
a != b aとbが等しくない
● Let’s Try

○ client_id=3の場所の取得

○ client_id=3以外の場所の取得

● Hint💡 

○ サンプルテーブル: sample_table

○ 場所: place





SQLの勉強 ~条件を絞ってデータ取得~

● データを集計すると合計や件数、平均値など算出可能

● データの集計

○ ex. 

● 軸を指定したデータの集計

○ ex. 





SQLの勉強 ~データの集計~

● データを集計すると合計や件数、平均値など算出可能

● データの集計

○ ex. 今までのデータ件数の合計

● 軸を指定したデータの集計

○ ex. クライアント別データ数の合計





SQLの勉強 ~データの集計~

● SQLのデータ集計構文

○ SELECT [集計関数] FROM [テーブル名] 







SQLの勉強 ~データの集計~

-- データ件数の取得
SELECT
COUNT(id)
FROM sample_table
● 集計関数の種類





SQLの勉強~データの集計~

COUNT(a) aの件数
SUM(a) aの合計
AVG(a) aの平均
MIN(a) aの最小値
MAX(a) aの最大値
● Let’s Try

○ 今までのデータ件数

○ client_id=3のデータ件数

● Hint💡 

○ サンプルテーブル: sample_table

○ 件数を表す集約関数はCOUNT()





SQLの勉強~データの集計~

● 軸を指定したデータ集計構文

○ SELECT [軸にするカラム], [集計関数] FROM [テーブル名] 

GROUP BY [軸にするカラム]







SQLの勉強 ~軸を指定したデータの集計~

-- クライアント毎のデータ件数
SELECT
client_id,
COUNT(id)
FROM sample_table
GROUP BY client_id
● Let’s Try

○ クライアントごとのデータ件数の集計

■ どこのクライアントが一番データが多い?

● Hint💡 

○ GROUP BY で集計する軸を指定

○ 件数を表す集約関数はCOUNT()





SQLの勉強 ~軸を指定したデータの集計~

SQLに興味が湧いた人へ

Extra Stage

● SQL攻略 - Web上でSQLを実行しながらマスターするサイト

○ http://sql.main.jp/





SQLの勉強 ~軸を指定したデータの集計~


Redash・SQL勉強会 ~目指せクエリ女子~