2012年7月11日

[mysql 15783] カテゴリ毎の上位3件

こんばんは。shin1です。

価格データから、各カテゴリ毎の売価が安いものTOP3を
一覧にしたいのですが、こういう項目のテーブルがあったとします。

create table saledata (
saleid int auto_increment,
category varchar(20),

name varchar(200),
price int,
primary key (saleid)
);

他のエンジンなら、以下のような感じだと思うのですが
MySQLではサブクエリのLIMITが使えないと知り、困っています。
MySQLではこういう場合、どのように記述すれば良いのでしょうか。

select category, name, price from saledata AS t
where saleid in (
select saleid from saledata where category=t.category
order by price asc limit 3
)
order by category asc, price asc

たぶん、良くある例な気がしますが、ネットで探し当てられ
ませんでした。よろしくお願い致します。


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




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