2020/9/28追記
caseパラメータを用いた場合、記述した順序でexploreでもソートしてくれます。
公式リファレンス
ただし、
・ラベルのデータ型はstringで固定
・ラベルに変数を使えない
等の制約があるため、今回紹介するやり方を使うべきかはケースバイケースです。
例題
下記のデータが入ったSampleテーブルがあるとします。
id | name |
---|---|
1 | aaa |
2 | bbb |
3 | ccc |
4 | ddd |
5 | eee |
Exploreでnameを基準にソートさせたとき
id | name |
---|---|
3 | ccc |
1 | aaa |
2 | bbb |
5 | eee |
4 | ddd |
という順序で表示したい場合を考えてみましょう。
結論
ソート用のdimensionを定義し、order_by_fieldパラメーターに作成したソート用のdimensionを指定することで、任意の表示順序でソートさせることができます。
sample.view
view: sample {
︙
︙
dimension: id {
primary_key: yes
type: number
sql: ${TABLE}."id"
}
dimension: name_sort {
type: number
sql:
CASE ${id}
WHEN 1 THEN 2
WHEN 2 THEN 3
WHEN 3 THEN 1
WHEN 4 THEN 5
WHEN 5 THEN 4
ELSE NULL
END;;
}
dimension: name {
type: string
sql: ${TABLE}."name"
order_by_field: name_sort
}
}