Вы можете использовать LIMIT
здесь:
SELECT room_id, COUNT(DISTINCT course_code)
FROM LearningActivity
GROUP BY room_id
ORDER BY COUNT(DISTINCT course_code) DESC
LIMIT 1;
Это вернет room_id
и его количество, соответствующее комнате с наибольшим отличным счетом.
Для более общего решение, которое охватило бы все комнаты с наибольшим количеством различных курсов, если есть 2 или более связанных, используйте RANK
:
WITH cte AS (
SELECT room_id, COUNT(DISTINCT course_code) AS cnt,
RANK() OVER (ORDER BY COUNT(DISTINCT course_code) DESC) rnk
FROM LearningActivity
GROUP BY room_id
)
SELECT room_id, cnt
FROM cte
WHERE rnk = 1;