各クラスで最高 3 点を表示しようとしています。次のコードを使用しています。
SELECT Name, Marks FROM mytable AS t1
INNER JOIN
(SELECT DISTINCT(Marks) AS best_marks FROM mytable WHERE Class='class1' ORDER BY Marks DESC LIMIT 3) AS t2
ON t1.Marka = t2.best_marks ORDER BY Marks DESC, Name ASC;
このコードは、Stackoverfolow の「Eggplant」によって提供されました。
クラスがない場合は正常に動作します。
私のテーブルは
Name Marks Class
S1 90 class1
S2 55 class3
S3 60 class4
S4 90 class1
S5 55 class2
S6 60 class3
S7 88 class1
S8 45 class6
S9 88 class1
s10 76 class3
s11 92 class3
s12 44 class1
前述の表のように、重複するレコードとクラスを含む 3 つのレコードを表示したい
だから私の最終的な出力は次のようになります
Name Marks Class
S1 90 class1
S4 90 class1
S7 88 class1
S9 88 class1
Name Marks Class
S5 55 class2
Name Marks Class
s11 92 class3
s10 76 class3
S6 60 class3
Name Marks Class
S3 60 class4
Name Marks Class
S8 45 class6
よろしくお願いします。