[pgsql-jp: 36338] 特定日が最終ログインのユーザを取り出す

choice choice-site @ choice-site.com
2005年 11月 7日 (月) 14:33:40 JST


中出と申します。
いつも学ばせていただいています。


ログインの記録を保存している以下のようなテーブルが
あるとします。

●テーブル名:loginlog

username | logindate
----------+------------
a     | 2005-11-07
c     | 2005-11-06
a     | 2005-11-05
b     | 2005-11-05

このデータから最後にログインした日が「2005-11-05」の
ユーザだけを取り出すようにするにはどうしたらよいのか
ということで悩んでます。ちなみに取得したい結果はユーザ「b」
だけとなります。

僕としては、同じ構造をもつtmploginlogというテーブルをつくり、

insert into tmploginlog select username,logindate from loginlog
 where logindate='2005-11-05';

で「2005-11-05」にログインしたユーザを取り出し、tmploginlog
に入れてから、

delete from tmploginlog where exists(select * from tmploginlog
 where tmploginlog.username=loginlog.username and 
 loginlog.logindate>'2005-11-05');

で「2005-11-06」以降にログインしたユーザを削除したらいいかなぁ
と思ったのですが、もっとスマートな方法があるはずだと思い悩んで
ます。

よい方法を教えていただけないでしょうか?
よろしくお願いいたします。 




----




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