mysql 쿼리에서 순위를 매길 때 관계를 처리하는 방법은 무엇입니까? 내가이 예에서 테이블 이름과 열을 단순화했습니다,하지만 내 문제 설명한다 :MySQL에서 순위를 매길 때 어떻게 관계를 처리합니까?
SET @rank=0;
SELECT student_names.students,
@rank := @rank +1 AS rank,
scores.grades
FROM student_names
LEFT JOIN scores ON student_names.students = scores.students
ORDER BY scores.grades DESC
그래서 상상을 위의 쿼리가 생성됩니다
Students Rank Grades
=======================
Al 1 90
Amy 2 90
George 3 78
Bob 4 73
Mary 5 NULL
William 6 NULL
을 알 에이미가 같은 경우에도 하나는 다른 등급보다 높은 등급입니다. 에이미가 찢어 졌어. Amy와 Al의 순위가 같아서 둘 다 순위가 1 위가되도록하려면 어떻게해야합니까? 또한 William과 Mary는 테스트를하지 않았습니다. 그들은 수업을 포기하고 소년 방에서 담배를 피웠다. 그들은 마지막 장소에 묶여 있어야합니다.
정확한 순위는해야한다 : 사람이 어떤 조언을 가지고
Students Rank Grades
========================
Al 1 90
Amy 1 90
George 2 78
Bob 3 73
Mary 4 NULL
William 4 NULL
있으면 알려 주시기 바랍니다.
안녕 OMG Ponies, 당신은 MySQL 터미네이터입니다 !! 굉장, 도와 줘서 고마워. 나는 결코 그것을 이해하지 못했을 것이다. (내 SQL 지식은 기본이므로 더 잘 이해하려면 대답을 연구해야합니다.) 또한 화면 이름이 마음에 듭니다. 다시 고맙습니다 !!! -Laxmidi – Laxmidi
"MySQL에서는 조건없이 INNER JOIN을 사용하여 별도의 SET 문을 사용하지 않고 변수를 선언하고 사용할 수 있습니다." 젠장, 네가 할 수 있을지 모르겠다. +1 – heisenberg
내가 할 수만 있다면 다시 투표 할 수 있습니다. 장관. – duffymo