복붙노트

[SQL] MYSQL에서 순위를 생성하는 가장 좋은 방법은 무엇입니까?

SQL

MYSQL에서 순위를 생성하는 가장 좋은 방법은 무엇입니까?

MYSQL의 행 데이터에 추가 행의 순위를 얻을 수있는 가장 좋은 방법은 무엇입니까?

예를 들어, 나는 학생들의 목록을 가지고 있고이 GPA에 순위에 싶은 말은. 나는 내가 GPA로 주문할 수 있습니다 알고 있지만,이 MYSQL 내가 돌아올 rowData 하행에서뿐만 아니라 순위를 반환하는 가장 빠른 방법은 무엇입니까?

해결법

  1. ==============================

    1.이 ROWNUM으로 순위를 반환합니다

    이 ROWNUM으로 순위를 반환합니다

    SELECT @rownum := @rownum + 1 rownum, 
           t.* 
      FROM (SELECT @rownum:=0) r, 
           (SELECT * FROM students ORDER BY gpa DESC) t;
    
  2. ==============================

    2.이것은 학생들의 순위, 학생 ID 및 GPA를 반환합니다.

    이것은 학생들의 순위, 학생 ID 및 GPA를 반환합니다.

    set @rownum := 0;
    SELECT @rownum := @rownum + 1 AS rank, student_id, gpa 
        FROM `students` ORDER BY gpa DESC
    
  3. from https://stackoverflow.com/questions/431053/what-is-the-best-way-to-generate-ranks-in-mysql by cc-by-sa and MIT license