>

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`

이 결과를 내놓았다 양식 열별로 그룹화 된 각 학생의 최대 비율을 얻고 싶습니다

Max ()를 가져 오려고 할 때 by () 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`

예상 결과는

17     71     28     upper     Science     2018     Jerry Maguire

  • 답변 # 1

    일부 그룹화를 허용하는 MySQL의 문제 일 수 있습니다. 당신의 GROUP BY 를 확장하려고   m.Percentage 를 제외한 모든 열에서 그룹화 할 표현식 .

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

    다른 DBMS로 인해 그렇게해야합니다.

  • 이전 android - 활동 인식은 오레오에서 서비스를 계속합니다
  • 다음 objective c - C ++ 애플리케이션에서 코코아 모달 창 열기