Напишите запрос для печати hacker_id, имени и общего количества вызовов, созданных каждым учащимся. Сортируйте результаты по общему количеству проблем в порядке убывания. Если более одного ученика создало такое же количество проблем, то отсортируйте результат с помощью hacker_id. Если более одного ученика создало столько же задач, и количество меньше, чем максимальное количество созданных задач, то исключайте этих учащихся из результата.Исключить результаты на основе тестовых примеров
Я также прикрепил изображения для соответствующих таблиц
Таблица Хакеры:
hacker_id name
5077 Rose
21283 Angela
62743 Frank
88255 Patrick
96196 Lisa
Таблица Проблемы:
challenge_id hacker_id
61654 5077
58302 21283
40587 88255
29477 5077
1220 21283
69514 21283
46561 62743
58077 62743
18483 88255
76766 21283
52382 5077
74467 21283
33625 96196
26053 88255
42665 62743
12859 62743
70094 21283
34599 88255
54680 88255
61881 5077
Итак, пока я сделал это
SELECT c.hacker_id, h.name, COUNT(c.challenge_id) AS challenge_count
FROM Challenges c LEFT JOIN Hackers h on c.hacker_id = h.hacker_id
GROUP by 1,c.hacker_id HAVING challenge_count >=
MAX(challenge_count) ORDER BY challenge_count DESC ,c.hacker_id DESC;
Но не получать ожидаемый выход. Мой выход
Мне нужно, чтобы исключить повторяющиеся результаты вывода, такие как хакеры с таким же количеством проблем, должен быть исключен.
Итак, кого следует исключать здесь? – sagi
Хакеры с таким же количеством проблем должны быть исключены, если количество проблемных значений меньше максимального значения. Если у двух хакеров одинаковое количество проблем, и это максимальная ценность, то и хакеры должны быть включены –
@sagi По крайней мере, он согласен :-) –