見出し画像

Looker Q&A:LookML編

複数フィールドを基準に区分するdimensionを作成するLooker nativeな記法ある?

性別と年代のフィールドが元データにあって、新たに性年代のdimensionを作成したいなどのケースを想定。

記法はない。type : tiersは単一のディメンジョンでしか判定できないから、sqlパラメータでCASE文を書く必要がある。

ダッシュボードのフィルターで期間粒度を切り替えられる?(月 or 四半期 or 年など)

できる。viewファイル内で、値を受け取るだけのフィールド「parameter」を定義して、ダッシュボード上で動的にdimensionを変更可能。

ダッシュボードのフィルターで指標を切り替えられる?(税抜 or 税込など)

できる。上記の期間粒度同様に「parameter」を定義して、typeをnumberとして、dimension内のSQLパラメータ内で {% parameter XXX %} と書くと、受け取った値を動的に利用可能。

ただし、measureを「paramete」で参照するとdrill_fieldsやfilterは引き継がれない。そのため動的measureでドリルダウンしたい場合は、以下のようにリンクをparameterで参照する必要がある。

measure: dynamic_measure {
 label:
   "{% if view_name._parameter_value == '0sec' %}
     UU_0sec
   {% elsif view_name._parameter_value == '10sec' %}
     UU_10sec
   {% else %}
     UU_60sec
   {% endif %}"
 type: number
 sql:
   "{% if view_name._parameter_value == '0sec' %}
     UU_0sec
   {% elsif view_name._parameter_value == '10sec' %}
     UU_10sec
   {% else %}
     UU_60sec
   {% endif %}"
 link: {
   label: "ユーザIDにドリルダウンする"
   url: 
     "{% if view_name._parameter_value == '0sec' %}
       {{ UU_0sec._link }}
     {% elsif view_name._parameter_value == '10sec' %}
       {{ UU_10sec._link }}
     {% else %}
       {{ UU_60sec._link }}
     {% endif %}"
 }
}

(この例の場合、ラベルも出し分けている)


サポートされた者たちから受け継いだものはさらに『先』に進めなくてはならない!!