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

choice choice-site @ choice-site.com
2005年 11月 7日 (月) 15:36:49 JST


中出です。

長谷川@ニッパクさま、谷田@現実逃避中さま、
レスありがとうございます。

目からウロコです。

やはり、皆様に相談させていただいてよかったです。
今後ともよろしくお願いします。

では、失礼します。

----------------------- Original Message -----------------------
On Mon, 07 Nov 2005 14:50:46 +0900
TANIDA Yutaka <tanida @ sraoss.co.jp> wrote:

> 谷田@現実逃避中です。
> 
> 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 メーリングリストの案内