[pgsql-jp: 32546] Re: ある列のデータが同一で別のある列のデータが最大なものの抽出
馬場 泰明 ( 川上)
kawakami @ mxe.nes.nec.co.jp
2004年 3月 23日 (火) 15:06:13 JST
はじめまして。馬場と申します。
お世話になります。
すみません、oracle でしか動作確認していないのですが、
以下の SQL ではいかがでしょうか。
SQL> desc test
名前 NULL? 型
----------------------------------------- -------- ----------------------------
ID NUMBER(3)
TRAI_NO NUMBER(3)
SQL> select * from test;
ID TRAI_NO
---------- ----------
1 1
2 1
1 2
3 1
4 1
2 2
2 3
7行が選択されました。
SQL> select * from test
2 where (id,trai_no) in (select id,max(trai_no) from test group by id);
ID TRAI_NO
---------- ----------
1 2
2 3
3 1
4 1
もしも PostgreSQL 固有のエラーで困っていらっしゃるのでしたら
すみません。
以上よろしくお願い致します。
/ ばば やすあき
2004/03/23 14:51:22 +0900にPochi <Pochi @ ppm-ja.com>さんに頂いた
「[pgsql-jp: 32544] ある列のデータが同一で別のある列のデータが最大なものの抽出」への返事です。
>Pochiといいます。
>
>ID Trai_no (他の列)
>1 1 (データ)
>2 1 (データ)
>1 2 (データ)*
>3 1 (データ)*
>4 1 (データ)*
>2 2 (データ)
>2 3 (データ)*
>
> というテーブルを作っています(言うまでもないかもしれませんが、その他の
>列はまとめて出してます)。IDとTrai_noであわせてprimary keyとしています。
>
> ここで、同一ID(=Trai_noが一番大きい)の最新のデータを取り出したいのです
>(*が付いている行のデータ)。
> それを一行のselect文で出したい(最新のデータだけで構成されるviewを作り
>たい)のですがエラーが出てどうしても上手く行きません。
>
> みなさんのお知恵をお貸し頂ければと思い投稿しました。よろしくお願いいた
>します。
>
> FAQなような気もしましたが、的確な検索キーワードが分からず、いくつか試
>してみたのですが、出てきませんでした。
>
>なお、PostgreSQLのバージョンは7.1.3です(ふ、古い・・・)。
>
>--
>Pochi Pochippm-ja.com
>
pgsql-jp メーリングリストの案内