BEWERKEN :Dit wordt ondersteund door MySQL 4.1+
Gebruik:
SELECT st.name,
sc.grades,
CASE
WHEN @grade = COALESCE(sc.grades, 0) THEN @rownum
ELSE @rownum := @rownum + 1
END AS rank,
@grade := COALESCE(sc.grades, 0)
FROM STUDENTS st
LEFT JOIN SCORES sc ON sc.student_id = st.id
JOIN (SELECT @rownum := 0, @grade := NULL) r
ORDER BY sc.grades DESC
U kunt een cross join gebruiken (in MySQL, een INNER JOIN zonder criteria) om een variabele te declareren en te gebruiken zonder een aparte SET
te gebruiken verklaring.
Je hebt de COALESCE nodig om de NULL's goed te kunnen verwerken.