いつもお世話になっております。
以下のような表からそれぞれのKEY_IDごとにその日の最新のVALUE値を取得する方法を模索しております。
【テーブル構成】
create table sample_log ( key_id integer not null, time timestamp(6) with time zone not null, value numeric, primary key (mid,sampled_at) ); INSERT INTO sample_log VALUES(1,'2020/3/1 10:01:12',24)); INSERT INTO sample_log VALUES(1,'2020/3/1 10:01:13',25)); INSERT INTO sample_log VALUES(1,'2020/3/1 10:01:14',26)); INSERT INTO sample_log VALUES(2,'2020/3/1 10:01:12',24)); INSERT INTO sample_log VALUES(2,'2020/3/1 10:01:13',25)); INSERT INTO sample_log VALUES(2,'2020/3/1 10:01:14',26)); INSERT INTO sample_log VALUES(3,'2020/3/1 10:01:12',24)); INSERT INTO sample_log VALUES(3,'2020/3/1 10:01:13',25)); INSERT INTO sample_log VALUES(3,'2020/3/1 10:01:14',26));
【期待結果】
key_id | time | value |
---|---|---|
1 | 2020/3/1 10:01:14 | 26 |
2 | 2020/3/1 10:01:14 | 26 |
3 | 2020/3/1 10:01:14 | 26 |
【試したSQL】
SELECT * FROM sample_log WHERE key_id IN(1,2,3) ORDER BY time '2020/03/01 00:00:00' AND '2020/03/1 23:59:59' DESC LIMIT 1
上記のSQLではIN句の中から最新のデータを取るという意味合いになってしまい
1レコードしか取得できませんでした。
実現したいのは期待結果のようなそれぞれのkey_idごとにその日の最新値を取得する方法です。
至らない点も多いかと思いますが、ご教授いただけますでしょうか。
回答2件
あなたの回答
tips
プレビュー