見出し画像

Redashでドリルダウンを試す


1.概要

以下を参考にドリルダウンを試す

2.データソースの準備

2-1.APIを有効化する


※以下画面で「有効にする」を押下


2-2.サービスアカウントを作成し、JSONファイルをダ

ウンロード

2-3.スプレッドシートを共有

サービスアカウントのメールの欄にあるアドレスを指定して「共有」

(補足)スプレッドシートは以下の3シート
・categories

・menus

・receipts
※一部のみのスクショ(30件中24件まで)

2-4.RedashのDataSourceを作成

・JSONは先ほどダウンロードしたファイル

2-5.クエリ実行

・スプシID | n ( n = sheet番号)

3.各シートの内容を結合する

3-1.DataSourceにQuery Resultsを追加する

3-2.各クエリ結果を結合

・クエリ

(例)URLでクエリIDを確認し、”http://xx.xxx.xxx.xxx:5000/queries/6/source”の場合、テーブル名は”query_6”

SELECT menus.id,
       categories."primary" AS primary_category,
       categories.secondary AS secondary_category,
       menus.title,
       menus.price,
       receipts.purchase_date,
       receipts.purchaser,
       receipts.region
FROM query_6 AS menus
INNER JOIN query_5 AS categories ON menus.category_id = categories.id
INNER JOIN query_7 AS receipts ON menus.id = receipts.menu_id

・結果


4.ドリルダウン用のクエリを作成

(参考)パラメータ
・渡すとき " p_xxxxx=' aaaaaa' "
・受けるとき " {{ xxxxx }}


4-1.primary_category

・クエリ

SELECT primary_category,
       COUNT(*) AS cnt,
       '<a href="http://35.243.114.140:5000//queries/10?p_primary_category=' || primary_category || '" target = "_blank">ドリルダウンする</a>' AS drill_down
FROM query_8
GROUP BY primary_category

・結果

4-2.secondary_category

・クエリ

※条件「'{{primary_category}}' = 'xxx'」をORで含めることにより、'xxx'を入力したときはすべてのレコードでTRUE('xxx' = 'xxx'なので)となり、フィルターをかけていないのと同義となる。

SELECT secondary_category,
       COUNT(*) AS cnt,
       '<a href="http://35.243.114.140:5000//queries/11?p_primary_category=' || primary_category || '&p_secondary_category=' || secondary_category || '" target = "_blank">ドリルダウンする</a>' AS drill_down
FROM query_8
WHERE '{{primary_category}}' = 'xxx'
  OR primary_category = '{{primary_category}}'
GROUP BY primary_category,
         secondary_category

・結果

4-3.title


・クエリ

SELECT title,
       COUNT(*) AS cnt
FROM query_8
WHERE ('{{primary_category}}' = 'xxx'
  OR primary_category = '{{primary_category}}')
  AND ('{{secondary_category}}' = 'xxx'
       OR secondary_category = '{{secondary_category}}')
GROUP BY primary_category,
         secondary_category,
         title

・結果

5.ダッシュボード


・上記「4-3.title」のクエリをダッシュボードとして、カテゴリを変更することでマルチフィルターの同じことができる。

いいなと思ったら応援しよう!