Как выбрать 2 высших оценки из каждого группового кода для каждого студента в MySQL 57? - PullRequest
0 голосов
/ 26 апреля 2018

Значения в моей таблице.

enter image description here

Теперь ожидаемые результаты Например, если я выберу 2 наивысших оценки в групповом коде = 1, яожидайте увидеть следующее

enter image description here

мой запрос

SELECT marks FROM person WHERE groupCode = 1 ORDER BY marks DESC LIMIT 2; 

, получающий только результаты для Quigsley Kos groupCode 1 с отметками 69 и 30;

Кто-то, чтобы помочь в этом, пожалуйста.

1 Ответ

0 голосов
/ 26 апреля 2018
SELECT `sn`, `admno`, `studname`, `fclass`, `groupcode`, `subjectcode`, `marks`
FROM
(
SELECT `sn`, `admno`, `studname`, `fclass`, `groupcode`, `subjectcode`, `marks`,
        CASE WHEN @group = T.groupcode AND @studname = T.studname
        THEN @row:=@row+1
        ELSE
             @row:=1
        END AS rownum,
        @group:=T.groupcode AS Vargroupcode,
        @studName:= T.studname
FROM TableA T,(SELECT @group:=null,@row:=0) R
ORDER BY groupcode,studname
) T1
WHERE rownum<=2

Демо

http://sqlfiddle.com/#!9/65760b/1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...