実施したいこと
WHERE句内で「値=最大値」を取得したい
(調査する期間を絞った中での最大値に絞りたい)
##データ構造
sql
1create table user (id BIGINT(20), t BIGINT(20)); 2insert into user values (20226, 1571632622304); 3 4create table user_b (id BIGINT(20), t BIGINT(20)); 5insert into user_b values (25726, 1569201884438); 6
実行しているSQL
SQL
1select 2 a.id, 3 from_unixtime(truncate(a.t,-3)/1000) as a_time, 4 from_unixtime(truncate(b.t,-3)/1000) as b_time 5 6from user a 7 8left outer join user_b as b 9on a.id = b.id 10 11where 12 13 b.time between (unix_timestamp(DATE("2019-9-21")) - 9 * 3600) * 1000 and (unix_timestamp(DATE("2019-11-15")) - 9 * 3600) * 1000 -- 調査する期間を指定 14 15 and b.time <= a.time -- a.time以前のデータを抽出 16 17group by a.id 18 19-- 結果 20 212019-10-21 04:37:02.0000 ←この期間だけに絞りたい 222019-09-23 01:24:44.0000 23
試したこと
sql
1where 2b.time = (SELECT max(b.time) FROM user_b WHERE b.id = a.id) 3
→絞ることができず困っております。
ご教授いただければ幸いです。
回答1件
あなたの回答
tips
プレビュー