[pgsql-jp: 37144] Re: 結合時に複数の中から特定のレコードの最大値を持ってくるには(Bが無い場合も含める)

ISHIDA Akio iakio @ mono-space.net
2006年 6月 2日 (金) 20:59:56 JST


こんにちは。石田@苫小牧市です。
もう解決したようですが、おそらく次の方法でも
同じ結果が得られると思います。

select a.no, a.name,
(select b.kingaku
  from b where a.name = b.name
 order by raireki desc limit 1) from a;


06/06/02 に 切明 裕次<y-kiriaki @ tec.co.jp> さんは書きました:
> 早川さん、御返答ありがとうございます。
> なるほど、先にBを作ってからAですか。
> こんなこと考えもつきませんでした。勉強になりました。
> 機会があったらやってみます。
>
>
> > -----Original Message-----
> > From: Ryo HAYAKAWA [mailto:ryo @ fastriver.net]
> > Sent: Friday, June 02, 2006 3:54 PM
> > To: pgsql-jp @ ml.postgresql.jp
> > Subject: [pgsql-jp: 37141] Re: 結合時に複数の中から特定のレコードの最大
> > 値を持ってくるには(Bが無い場合も含める)
> >
> >
> > 早川と申します。
> >
> > From: 切明 裕次 <y-kiriaki @ tec.co.jp>
> > Subject: [pgsql-jp: 37140] 結合時に複数の中から特定のレコードの最大値を
> > 持ってくるには(Bが無い場合も含める)
> > Date: Fri, 2 Jun 2006 15:10:26 +0900
> > Message-ID: <88AA6CBDA4943E4D96A9C35BD43E31DFFA11BF @ TECMAIL>
> >
> > > 教えていただいたとおり実行すると、"ddd"が結果として出てきません。
> > > そこで、"inner join"を"left join"に変更してみましたが、今度は"
> > aaa"の結
> > > 果が複数出てしまいます。
> >
> > こんな解法もありでしょうか
> >
> > select A.NAME, B.RAIREKI, B.KINGAKU
> > from B inner join
> >          (select NAME, max(RAIREKI) as RAIREKI from B group
> > by NAME) B1
> >           on B.NAME = B1.NAME and B.RAIREKI = B1.RAIREKI
> >        right join A on A.NAME = B.NAME
> >
> > よく試していないので間違ってたらすみません。
> >
> > -- はやかわ
> >
>


-- 
ISHIDA Akio <iakio @ mono-space.net/ishida @ cycleof5th.com>



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