[pgsql-jp: 36340] Re: 特定日が最終ログインのユーザを取り出す
TANIDA Yutaka
tanida @ sraoss.co.jp
2005年 11月 7日 (月) 14:50:46 JST
谷田@現実逃避中です。
On Mon, 07 Nov 2005 14:33:40 +0900
choice <choice-site @ choice-site.com> wrote:
> ログインの記録を保存している以下のようなテーブルが
> あるとします。
>
> ●テーブル名:loginlog
>
> username | logindate
> ----------+------------
> a | 2005-11-07
> c | 2005-11-06
> a | 2005-11-05
> b | 2005-11-05
>
> このデータから最後にログインした日が「2005-11-05」の
> ユーザだけを取り出すようにするにはどうしたらよいのか
> ということで悩んでます。ちなみに取得したい結果はユーザ「b」
> だけとなります。
集約関数+havingが使えるケースですね。
select username,max(logindate)
from loginlog
group by username
having max(logindate) = "2005-11-05"
とかは?
#書いてみて、なるほど、こういうケースにも集約関数が使えるのか、
#と感心したのは秘密
> 僕としては、同じ構造をもつtmploginlogというテーブルをつくり、
>
> insert into tmploginlog select username,logindate from loginlog
> where logindate='2005-11-05';
一時テーブルは使わないほうがいいですよ。
--
TANIDA Yutaka <tanida at sraoss.co.jp>
pgsql-jp メーリングリストの案内