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

EBIHARA, Yuichiro ebihara @ iplocks.co.jp
2007年 11月 7日 (水) 12:26:39 JST


海老原です。

> categoryごとにcntが最大のデータを1回のSQL発行で
> 取得できないかと思っています。

こんなんでどうですか?

SELECT *
FROM test t1
WHERE NOT EXISTS (
    SELECT 1
    FROM test t2
    WHERE t2.category = t1.category AND t2.cnt > t1.cnt);

オプティマイザ次第ですが、(category, cnt)でインデックスでも作って
おけば、max関数 + group byより良さそうな気がします。

--
海老原 雄一郎 / EBIHARA, Yuichiro
  Email: ebihara @ iplocks.co.jp





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