Если вы хотите ранжировать - используя этот метод - для групп записей, то вам нужен коррелированный подзапрос:
SELECT id, student_id, exam_id, class_id, total_mark, section_id, year,
FIND_IN_SET(total_mark,
(SELECT GROUP_CONCAT( total_mark ORDER BY total_mark DESC )
FROM total_marks tm2
WHERE tm2.exam_Id = tm.exam_id AND
tm2.class_id = tm.class_id AND
tm2.section_id = tm.section_id AND
tm2.year = tm.year
)
) AS rank
FROM total_marks tm;
Здесь - это db <> скрипка.
Обратите внимание, что для правильного написания этого используются оконные функции:
SELECT tm.*,
RANK() OVER (PARTITION BY exam_Id, class_id, section_id, year
ORDER BY total_mark DESC
) as rank
FROM total_marks tm;
Эта функция является стандартным SQL и доступна в MYSQL начиная с версии 8.0.