< 前(Questionにフィルターを設定してみよう)
> 次(Questionのデータをダウンロードしてみよう)
このチュートリアルで理解できること
- NativeQueryで作成したQuestionのビジュアライゼーション方法について
Metabaseで作ることができるビジュアライゼーションの種類
- 2019年12月27日現在、下記のビジュアライゼーションでデータ抽出した結果を表示することができます。
- 折れ線グラフ
- 縦棒グラフ
- 折れ線&縦棒グラフ
- 面グラフ
- 横棒グラフ
- 散布図
- 円グラフ
- ファネルグラフ
- トレンドグラフ
- プログレスグラフ
- ゲージグラフ
- 数値
- テーブル
- マップ
折れ線グラフ
- 注文データを管理するOrdersテーブルをもとに、月別の一人あたり平均商品購入数を折れ線グラフで表示してみましょう。
- NativeQueryページを開き、
SampleDataset
を選択した上で、下記SQLを実行してください。
SELECT
TO_CHAR(created_at, 'YYYY/MM') AS month
, COUNT(id)::FLOAT / NULLIF(COUNT(DISTINCT user_id), 0) AS avg_count_order
FROM
orders
WHERE
created_at >= '2018-01-01'::TIMESTAMP
AND created_at < '2019-01-01'::TIMESTAMP
GROUP BY
month
ORDER BY
month
- 結果が出力されたら、ビジュアライゼーションの
線
をクリックし、折れ線グラフが表示されることを確認してみましょう。
- 設定をクリックすることで、折れ線グラフの設定メニューを開くことができます。
- データ
- X軸、Y軸にどのカラムを設定するかを選択できます。
- X軸、Y軸にシリーズを追加することで、更に細分化した結果をグラフで表示させることができます。
- 歯車マークをクリックすると、表示する値の形式の変更や、接頭語・接尾語を加えることもできます。
- 表示
- 線の色や値の軸を左右のどちらに設定するか、点線のON/OFF、欠損値の置き換えを変更することができます。
- グラフ上に、目標値を表示させることもできます。
- 軸
- X軸、Y軸の表示/非表示を切り替えることができます。
- ラベル
- X軸、Y軸の表示/非表示の切り替えや、ラベル名を変更することができます。
縦棒グラフ
- 注文データを管理するOrdersテーブルをもとに、月別の購入者数と購入商品数を縦棒グラフで表示してみましょう。
- NativeQueryページを開き、
SampleDataset
を選択した上で、下記SQLを実行してください。
SELECT
TO_CHAR(created_at, 'YYYY/MM') AS month
, COUNT(id) AS count_order
, COUNT(DISTINCT user_id) AS count_order_user
FROM
orders
WHERE
created_at >= '2018-01-01'::TIMESTAMP
AND created_at < '2019-01-01'::TIMESTAMP
GROUP BY
month
ORDER BY
month
- 結果が出力されたら、ビジュアライゼーションの
棒
をクリックし、縦棒グラフが表示されることを確認してみましょう。
- 設定をクリックすることで、縦棒グラフの設定メニューを開くことができます。
- データ
- X軸、Y軸にどのカラムを設定するかを選択できます。
- X軸、Y軸にシリーズを追加することで、更に細分化した結果をグラフで表示させることができます。
- 歯車マークをクリックすると、表示する値の形式の変更や、接頭語・接尾語を加えることもできます。
- 表示
- 棒の色や値の軸を左右のどちらに設定するかを変更することができます。
- グラフの形式を
積み上げグラフ
や100%積み上げグラフ
に変更することもできます。
- 軸
- X軸、Y軸の表示/非表示を切り替えることができます。
- ラベル
- X軸、Y軸の表示/非表示の切り替えや、ラベル名を変更することができます。
折れ線&縦棒グラフ
- 注文データを管理するOrdersテーブルをもとに、月別の一人あたり平均商品購入数を折れ線グラフで、購入者数と購入商品数を棒グラフで表示してみましょう。
- NativeQueryページを開き、
SampleDataset
を選択した上で、下記SQLを実行してください。
SELECT
TO_CHAR(created_at, 'YYYY/MM') AS month
, COUNT(id)::FLOAT / NULLIF(COUNT(DISTINCT user_id), 0) AS avg_count_order
, COUNT(id) AS count_order
, COUNT(DISTINCT user_id) AS count_order_user
FROM
orders
WHERE
created_at >= '2018-01-01'::TIMESTAMP
AND created_at < '2019-01-01'::TIMESTAMP
GROUP BY
month
ORDER BY
month
- 結果が出力されたら、ビジュアライゼーションの
Combo
をクリックし、折れ線&縦棒グラフが表示されることを確認してみましょう。
- 設定をクリックすることで、折れ線&縦棒グラフの設定メニューを開くことができます。
- データ
- X軸、Y軸にどのカラムを設定するかを選択できます。
- X軸、Y軸にシリーズを追加することで、更に細分化した結果をグラフで表示させることができます。
- 歯車マークをクリックすると、表示する値の形式の変更や、接頭語・接尾語を加えることもできます。
- 表示
- 線の色や値の軸を左右のどちらに設定するか、点線のON/OFF、欠損値の置き換えを変更することができます。
- 棒の色や値の軸を左右のどちらに設定するかを変更することができます。
- グラフ上に、目標値を表示させることもできます。
- 軸
- X軸、Y軸の表示/非表示を切り替えることができます。
- ラベル
- X軸、Y軸の表示/非表示の切り替えや、ラベル名を変更することができます。
面グラフ
- 購入者を管理するPeopleテーブルをもとに、月別で認知元毎の購入者数の累計を面グラフで表示してみましょう。
- NativeQueryページを開き、
SampleDataset
を選択した上で、下記SQLを実行してください。(ウィンドウ関数が使えなかったため、CROSS JOINで代用)
WITH
query_results AS (
SELECT
TO_CHAR(created_at, 'YYYY/MM') AS month
, source
, COUNT(id) AS count_user
FROM
people
GROUP BY
month, source
)
SELECT
qr1.month
, qr1.source
, SUM(qr2.count_user) AS total_user
FROM
query_results AS qr1
INNER JOIN
query_results AS qr2
ON
qr1.month >= qr2.month
AND qr1.source = qr2.source
GROUP BY
qr1.month, qr1.source
ORDER BY
qr1.month, qr1.source
- 結果が出力されたら、ビジュアライゼーションの
範囲
をクリックし、面グラフが表示されることを確認してみましょう。 - 初期表示では積み上げの面グラフになっていないため、設定メニューの表示から
スタック
をクリックし、認知元毎の累計購入者数がわかるように変更してみましょう。
- 設定をクリックすることで、面グラフの設定メニューを開くことができます。
- データ
- X軸、Y軸にどのカラムを設定するかを選択できます。
- X軸、Y軸にシリーズを追加することで、更に細分化した結果をグラフで表示させることができます。
- 歯車マークをクリックすると、表示する値の形式の変更や、接頭語・接尾語を加えることもできます。
- 表示
- 面の色や値の軸を左右のどちらに設定するか、点線のON/OFF、欠損値の置き換えを変更することができます。
- グラフの形式を
積み上げグラフ
や100%積み上げグラフ
に変更することもできます。 - グラフ上に、目標値を表示させることもできます。
- 軸
- X軸、Y軸の表示/非表示を切り替えることができます。
- ラベル
- X軸、Y軸の表示/非表示の切り替えや、ラベル名を変更することができます。
横棒グラフ
- 注文データを管理するOrdersテーブルをもとに、特定期間中の購入数トップ5を商品を横棒グラフで表示してみましょう。
- NativeQueryページを開き、
SampleDataset
を選択した上で、下記SQLを実行してください。
SELECT
COUNT(orders.id) AS count_order
, products.title
FROM
orders
LEFT JOIN
products
ON
orders.product_id = products.id
WHERE
orders.created_at >= '2018-01-01'::TIMESTAMP
AND orders.created_at < '2019-01-01'::TIMESTAMP
GROUP BY
products.title
ORDER BY
count_order DESC
LIMIT
5
- 結果が出力されたら、ビジュアライゼーションの
行
をクリックし、横棒グラフが表示されることを確認してみましょう。
- 設定をクリックすることで、横棒グラフの設定メニューを開くことができます。
- データ
- X軸、Y軸にどのカラムを設定するかを選択できます。
- X軸、Y軸にシリーズを追加することで、更に細分化した結果をグラフで表示させることができます。
- 歯車マークをクリックすると、表示する値の形式の変更や、接頭語・接尾語を加えることもできます。
- 表示
- 棒の色を変更することができます。
散布図
- 商品データを管理するProductsテーブルをもとに、価格と評価の関係を散布図で表示してみましょう。
- NativeQueryページを開き、
SampleDataset
を選択した上で、下記SQLを実行してください。
SELECT
price,
rating,
id
FROM
products
- 結果が出力されたら、ビジュアライゼーションの
散布
をクリックしてください。 - 初期表示ではX軸とY軸が設定されていないため、設定メニューのデータからX軸にPRICE、Y軸にRATINGを選択し、散布図が表示されるか確認してみましょう。
- 設定をクリックすることで、散布図の設定メニューを開くことができます。
- データ
- X軸、Y軸にどのカラムを設定するかを選択できます。
- X軸、Y軸にシリーズを追加することで、更に細分化した結果をグラフで表示させることができます。
- 歯車マークをクリックすると、表示する値の形式の変更や、接頭語・接尾語を加えることもできます。
- 吹き出しサイズを設定することで、吹き出しの大小を表示させることもできます。
- 表示
- 吹き出しの色を変更することができます。
- グラフ上に、目標値を表示させることもできます。
- 軸
- X軸、Y軸の表示/非表示を切り替えることができます。
- ラベル
- X軸、Y軸の表示/非表示の切り替えや、ラベル名を変更することができます。
円グラフ
- 購入者データを管理するPeopleテーブルをもとに、認知元の割合を円グラフで表示してみましょう。
- NativeQueryページを開き、
SampleDataset
を選択した上で、下記SQLを実行してください。
SELECT
source
, COUNT(id) as count_user
FROM
people
GROUP BY
source
ORDER BY
count_user DESC
- 結果が出力されたら、ビジュアライゼーションの
円
をクリックし、円グラフが表示されることを確認してみましょう。
- 設定をクリックすることで、円グラフの設定メニューを開くことができます。
- データ
- ディメンション(区切り方)と測定にどのカラムを設定するかを選択できます。
- 歯車マークをクリックすると、表示する値の形式の変更や、接頭語・接尾語を加えることもできます。
- 表示
- 凡例の表示/非表示を切り替えることができます。
- 凡例のパーセンテージ表示のON/OFFを切り替えることができます。
- パーセンテージの最小値を設定することができます。
- 円の色を変更することができます。
ファネルグラフ
- 注文データを管理するOrdersテーブルをもとに、2019年8月を起点に毎月何かしらの商品を注文しているユーザー数をファネルグラフで表示してみましょう。
- NativeQueryページを開き、
SampleDataset
を選択した上で、下記SQLを実行してください。
WITH
orders_201908 AS (
SELECT
user_id
, TO_CHAR(created_at, 'YYYY-MM') AS month
FROM
orders
WHERE
created_at >= '2019-08-01'::TIMESTAMP
AND created_at < '2019-09-01'::TIMESTAMP
)
, orders_201909 AS (
SELECT
user_id
, TO_CHAR(created_at, 'YYYY-MM') AS month
FROM
orders
WHERE
created_at >= '2019-09-01'::TIMESTAMP
AND created_at < '2019-10-01'::TIMESTAMP
AND EXISTS(SELECT * FROM orders_201908 WHERE orders.user_id = orders_201908.user_id)
)
, orders_201910 AS (
SELECT
user_id
, TO_CHAR(created_at, 'YYYY-MM') AS month
FROM
orders
WHERE
created_at >= '2019-10-01'::TIMESTAMP
AND created_at < '2019-11-01'::TIMESTAMP
AND EXISTS(SELECT * FROM orders_201908 WHERE orders.user_id = orders_201908.user_id)
AND EXISTS(SELECT * FROM orders_201909 WHERE orders.user_id = orders_201909.user_id)
)
SELECT
COUNT(DISTINCT user_id) AS count_user
, month
FROM
orders_201908
GROUP BY
month
UNION ALL
SELECT
COUNT(DISTINCT user_id) AS count_user
, month
FROM
orders_201909
GROUP BY
month
UNION ALL
SELECT
COUNT(DISTINCT user_id) AS count_user
, month
FROM
orders_201910
GROUP BY
month
- 結果が表示されたら、ビジュアライゼーションの
ファネル
をクリックし、ファネルグラフが表示されることを確認してみましょう。
- 設定をクリックすることで、ファネルグラフの設定メニューを開くことができます。
- データ
- ステップ(区切り方)と測定にどのカラムを設定するかを選択できます。
- 表示
- ファネルグラフを棒グラフに切り替えることができます。
プログレスグラフ
- 注文データを管理するOrdersテーブルをもとに、2019年8月の売上予算と実績をプログレスグラフで表示してみましょう。
- NativeQueryページを開き、
SampleDataset
を選択した上で、下記SQLを実行してください。
SELECT
SUM(total) AS sum_total
FROM
orders
WHERE
created_at >= '2019-08-01'::TIMESTAMP
AND created_at < '2019-09-01'::TIMESTAMP
- 結果が表示されたら、ビジュアライゼーションの
プログレス
をクリックし、ファネルグラフが表示されることを確認してみましょう。 - 選択時点では目標値が設定されていないため、設定をクリックし、表示メニューの目標値に60000を入れてみましょう。
- 設定をクリックすることで、プログレスグラフの設定メニューを開くことができます。
- 書式
- 数値の書式や桁区切りのスタイル、小数点の最小桁数を設定することができます。
- 結果に対して任意の倍率をかけることができます。
- 接頭語、接尾語をつけることもできます。
- 表示
- 目標値を設定することができます。
- プログレスバーの色を変更することができます。