お世話になっております。kawaと申します。
 
SQL文の組み立てで困っております。ご教示、お願い致します。
 
【内容】
 グループ化した情報のTOP10を取得するSQL文を作成したい。
 
下記の情報が、DBに登録されているとします。その場合、(名称1+名称2)のグループの中で、データが一番、高い方(1が一番高い)から10レコード抜出す。
 
   名称1  名称2  名称3  データ(順位)
   A     A1         A1-1        1
   A     A1         A1-2        2
   A     A1         A1-3        3
   A     A1         A1-4        4
   A     A1         A1-5        5
   A     A1         A1-6        6
   A     A1         A1-7        7
   A     A1         A1-8        8
   A     A1         A1-9        9
   A     A1         A1-10      10
   A     A1         A1-11      11
   A     A1         A1-12      12
   A     A2         A2-1        1
   A     A2         A2-2        2
   B     B1         B1-1        1
   B     B1         B1-2        2
   B     B1         B1-3        3
   B     B2         B2-1        4
   B     B2         B2-1        5
 
SQL文を実行すると、下記の様な情報を取得したいと思っております。
   名称1  名称2  名称3  データ
   A     A1         A1-1        1
   A     A1         A1-2        2
   A     A1         A1-3        3
   A     A1         A1-4        4
   A     A1         A1-5        5
   A     A1         A1-6        6
   A     A1         A1-7        7
   A     A1         A1-8        8
   A     A1         A1-9        9
   A     A1         A1-10      10
   A     A2         A2-1        1
   A     A2         A2-2        2
   B     B1         B1-1        1
   B     B1         B1-2        2
   B     B1         B1-3        3
   B     B2         B2-1        4
   B     B2         B2-1        5
 
※:下記の情報は、TOP10以下の情報なので、切り捨てたい。
   A     A1         A1-11      11
   A     A1         A1-12      12
 
【テーブル構成】
 テーブル名    =info
 項目           =名称1            Varchar
                     名称2            Varchar
                     名称3            Varchar
                     データ             int
 
【自分で作成してみた結果】
 解らないなりにも、自分で作成してみました。しかし、結果は、思惑の通りには行きませんでした。
 
 >select * top 10 from info group by 名称1,名称2 order by データ;
 
【mySQL】
 4.0.26
 
以上、宜しくお願い致します。