Presto idごとのtimeごとのtime以前の 直近の値(info_time)を取得したい
mainテーブルとinfoテーブルをidで外部結合して以下の内容を取得したいです。
■idごとのtime時点での最新のinfo_timeを取得したい。
※time以前のinfo_time取得できない場合はNULLとします。
完成イメージとしては以下の表のようなイメージです。
id | time | info_time |
---|---|---|
1 | '2018-10-01' | '2018-09-30' |
1 | '2018-10-12' | '2018-09-30' |
1 | '2018-10-15' | '2018-10-15' |
2 | '2018-10-03' | NULL |
2 | '2018-10-06' | '2018-10-04' |
2 | '2018-10-08' | '2018-10-04' |
該当のソースコード
sql
1WITH main AS 2( 3 select 4 * 5 from 6 ( 7 values (1,'2018-10-01'),(1,'2018-10-12'),(1,'2018-10-15'),(2,'2018-10-03'),(2,'2018-10-06'),(2,'2018-10-08') 8 ) as t(id,time) 9), 10 11 info AS 12( 13 select 14 * 15 from 16 ( 17 values (1,'2018-09-29'),(1,'2018-09-30'),(1,'2018-10-14'),(2,'2018-10-01'),(2,'2018-10-04'),(2,'2018-10-09') 18 ) as t(id,info_time)
試したこと
グルーピングをmain.id、main.timeで行うことで
「idごと」
「timeごと」
の取得できるのはわかるのですが
time以前の直近のinfo_timeの取得に詰まってしまいました。
補足情報(FW/ツールのバージョンなど)
Prestoになります。
実際のデータ「time」「info_time」はunixtimeで取得します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。