Сгруппируйте и посчитайте отчеты, затем свяжите их с автором.Попросите ТОП 1 с галстуками, упорядоченными по убыванию количества отчетов.WITH TIES обеспечит включение всех, кто связан с первым местом
SELECT TOP 1 u.Nick, R.ReportCount
FROM
Users U
INNER JOIN
(
SELECT AuthorID, COUNT(*) as ReportCount
FROM Report
GROUP BY AuthorID
) R
ON U.ID = R.AuthorID
ORDER BY R.ReportCount DESC
Если у Джона, Джеймса и Джейка будет 500 отчетов, то результаты будут:
John, 500
James, 500
Jake, 500
Если Джейк вдруг сделает еще один, и он станет единственным лидером, результаты будут такими:
Jake, 501
TOP x WITH TIES берет x записей, затем смотрит на то, что заказывает (reportcount) и несетпри получении записей, которые имеют тот же отчетный счет, что и последняя строка, которую нужно взять
Если ваш набор результатов был:
James, 503
Jake, 501
Jim, 500
John, 500
Julie, 500
Jeffrey 499
И вы запросили ТОП 3 с связями, то ТОП 3:
James, 503
Jake, 501
Jim, 500
Мы ЗАРЯДИМСЯ по количеству отчетов, последняя строка из вышеприведенных 3 имеет 500 в качестве счетчика отчетов, поэтому БД будет продолжать принимать другие строки, которые также имеют 500 в качестве числа отчетов:
James, 503
Jake, 501
Jim, 500
John, 500
Julie, 500