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 %}"
}
}
(この例の場合、ラベルも出し分けている)
サポートされた者たちから受け継いだものはさらに『先』に進めなくてはならない!!