[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 メーリングリストの案内