MYSQL - MAX () и GROUP BY () не дают ожидаемых результатов - PullRequest
0 голосов
/ 25 мая 2018

после запуска sql

SELECT 
        m.stdClassID,
        m.Percentage,
        sc.ClassID,
        sc.Form,
        sc.FormName,
        sc.Year,
        sc.stdName
FROM stdremark  m
INNER JOIN (
    SELECT
        sc.ClassID,
        c.Form,
        c.FormName,
        sc.stdClassID,
        c.Year,
        CONCAT(s.StdFname,' ',s.StdLname) as stdName
    FROM tblstdclass sc 
    INNER JOIN tblclass c
        ON sc.ClassID=c.ClassID
    INNER JOIN tblstudents s
        ON sc.StdID = s.StdID
    WHERE c.Year=2018
) sc ON m.stdClassID=sc.stdClassID
WHERE m.Term=3`

Я приду к этому результату и хочу получить максимальный процент каждого студента, сгруппированный по столбцу формы

result of sql

когда я пытаюсь получить Max () и сгруппировать () из sql:

SELECT 
        m.stdClassID,
        MAX(m.Percentage),
        sc.ClassID,
        sc.Form,
        sc.FormName,
        sc.Year,
        sc.stdName
FROM stdremark  m
INNER JOIN (
    SELECT
        sc.ClassID,
        c.Form,
        c.FormName,
        sc.stdClassID,
        c.Year,
        CONCAT(s.StdFname,' ',s.StdLname) as stdName
    FROM tblstdclass sc 
    INNER JOIN tblclass c
        ON sc.ClassID=c.ClassID
    INNER JOIN tblstudents s
        ON sc.StdID = s.StdID
    WHERE c.Year=2018
) sc ON m.stdClassID=sc.stdClassID
WHERE m.Term=3
GROUP BY sc.Form`

but what am actually getting as result is

ожидаемый результат должен был быть

17     71     28     upper     Science     2018     Jerry Maguire

1 Ответ

0 голосов
/ 25 мая 2018

Может быть проблема с MySQL, позволяющая частичную группировку.Попытайтесь расширить выражение GROUP BY для группировки по всем столбцам, кроме m.Percentage.

...
GROUP BY m.stdClassID,
         sc.ClassID,
         sc.Form,
         sc.FormName,
         sc.Year,
         sc.stdName

Другие СУБД заставят вас сделать это в любом случае.

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