0

各クラスで最高 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  

よろしくお願いします。

4

1 に答える 1