質問: ndtのtimezone指定によるエラー exploreで例えば以下のようなmeasureを定義しています。measure: count{type:count_distinctsql: case when a_date <= b_date then id else null end}a_date,b_dateどちらも元データがtimestampでtype:time型のdimension_groupを定義しており、date型を取り出して使用しています。このcountメジャーをtimezone:asia/tokyoに設定したndtで使用すると以下のようにsqlが変換されます。count(distinct case when timestamp(format_timestamp('%f %h:%m:%e*s', format_timestamp('%y-%m-%d', timestamp(format_timestamp('%f %h:%m:%e*s', a_date , 'asia/tokyo')))), 'asia/tokyo') <= ( timestamp(format_timestamp('%f %h:%m:%e*s', format_timestamp('%y-%m-%d', timestamp(format_timestamp('%f %h:%m:%e*s', b_date , 'asia/tokyo')))), 'asia/tokyo'))then id end) as count一度format_timestampした指標に対して再度format_timestampが動作し引数の型が合わないためエラーが発生してしまい、pdtの生成などに失敗してしまいます。(exploreのrun自体はエラーが表示されていても実行できます。)timezone:asia/tokyoを外せばformat_timestampは動作しないので問題ないですが、そうするとデータベースのタイムゾーン(utc)で集計されてしまい、意図しない結果となります。この問題に対処する方法はなにかありますでしょうか?
回答: ご連絡ありがとうございます。上記の件、ご利用になられているデータベースは、bigqueryでしょうか?以下のように絞り込み条件の部分をdimensionとして定義していただくことで回避可能かと存じます。一度、ご確認いただけますでしょうか?dimension: flag { type: yesno hidden: yes sql: ${a_date} >= ${b_date} ;;}measure:count { type: count_distinct sql: ${id} ;; filter: [ flag: “yes” ]}