2012年7月11日

[mysql 15788] Re: カテゴリ毎の上位3件

中川です。
後藤さんのやり方にはひとつ問題がありまして、3件以上のレコードがないカテゴリの
抽出ができません。
PostgreSQL、Oracle、DB2などでは
ROW_NUMBER関数やRANK関数が使えるのですがMySQLは未実装なのでここのあたりは
対応が苦しいところですね。

****************************************

コープ情報システム株式会社
運用事業部
コーププラザサービスデスクグループ
中川 貴
175-0094
東京都渋谷区渋谷3-29-8 コーププラザ5F
TEL 03-5778-8010
E-MAIL takashi.nakagawa@xxxxx
****************************************

(2012/07/11 14:17), gotou1213@xxxxx wrote:
> 後藤です。
>
> 以下のように相関サブクエリの回数を減らしたほうが早いかもしれません。
>
> select a.category, a.name, a.price
> from (
> select category, (
> select price from saledata where category = g.category
> order by category asc, price asc limit 2,1
> ) as price
> from ( select category from saledata group by category) g
> ) t
> inner join saledata a
> on a.category = t.category
> and a.price<= t.price
> ;
>
> 以上です。
>

投稿者 xml-rpc : 2012年7月11日 15:00
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/111244
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。