[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 メーリングリストの案内