[pgsql-jp: 38948] Re: グループごとの最大値を持つデータを取得したい

野村 admin @ true.jp
2007年 11月 12日 (月) 13:46:21 JST


すみませんもう同じものが中村さまの発言でありましたね
失礼しました
野村 さんは書きました:
> 日にちがたってるから遅いですかね
> こんなのはどうでしょう。
> select
>  distinct on (category )
>  *
>  from test
>  order by category,cnt desc
> 
> なかで さんは書きました:
>> こんにちは、中出と申します。
>>
>> しばらくSQLで悩んでいるのですが、良い方法が
>> 思いつかなかったので投稿させていただきます。
>>
>>
>> 以下のようなテーブルがあり、データがあるとします。
>> categoryごとにcntが最大のデータを1回のSQL発行で
>> 取得できないかと思っています。
>> よい方法があれば教えてください。
>>
>> なお、category分のSQLを発行してcntが最大のデータ
>> を取得するというのもありますが、categoryが増える
>> 可能性がありますので、できれば避けたいと考えてい
>> ます。
>>
>> 以上、よろしくお願いします。
>>
>> ●テーブル
>> CREATE TABLE "test"
>> (
>>   category int4 NOT NULL,
>>   name varchar(10) NOT NULL,
>>   cnt int4 DEFAULT 0
>> ) 
>>
>> ●データ
>> category | name | cnt
>> ---------+------+-----
>> 1        | hoge | 1
>> 1        | fugo | 2
>> 2        | fufu | 1
>> 2        | hoho | 3
>>
>> ●取り出したいデータ
>> category | name | cnt
>> ---------+------+-----
>> 1        | fugo | 2
>> 2        | hoho | 3
>>
> 
> 
> 
> 
> __________ NOD32 2652 (20071111) 情報 __________
> 
> このメールはNOD32によって検査済みです。
> http://canon-sol.jp
> 
> 
> 




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