[pgsql-jp: 31174] 複数の入力それぞれの最新の値を求めるSQL文

Hiroya Torii torii @ bl.mmtr.or.jp
2003年 10月 6日 (月) 16:28:34 JST


こんにちは。SQL文でいい方法が思いつかず質問です。

端末が複数あり、それぞれの端末には番号が振ってあるとします。
DBには、どの端末から、いつ、どんな値が入力されたかを記録する
ものとします。

create table test_tbl {
    termid int4      ;端末番号
  , dt     datetime  ;入力時間
  , val    int4      ;入力データ
};

ここから、それぞれの端末の最新データを取りたいと考えました。
思いついたのは次の2つ
1:入力されるたびに端末ごとの最新のデータだけを保持する
    別のテーブル(またはファイル)を用意する
2:Viewを作って対処
    create view test_view (termid, dtmax) 
     as select termid, max(dt) as dtmax from test_tbl
     group by termid;
    取り出すときは
    select * from test_tbl as tt, test_view as tv
     where tt.termid=tv.termid AND tt.dt=tv.dtmax;

ということで解決しているといえば解決しているのですが、
何かもっと簡単に書けるのではないかと思い、MLに投げさせて
もらいました。
いい方法がありましたらアドバイスください。


-- 
      __________
     (_ _______()
     __||_[]_||__
    (___________()
       ||‡‡||             鳥居 大哉 (Hiroya TORII)
       ||    ||           
   ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■





pgsql-jp メーリングリストの案内