संपादित करें :यह MySQL 4.1+ समर्थित है
उपयोग करें:
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
आप एक अलग SET
का उपयोग किए बिना एक चर घोषित करने और उपयोग करने के लिए एक क्रॉस जॉइन (MySQL में, एक INNER JOIN बिना किसी मानदंड के) का उपयोग कर सकते हैं। बयान।
NULLs को ठीक से संभालने के लिए आपको COALESCE की आवश्यकता है।