Authors_with_20_liders
SELECT stt.*, lider.LiderCount
FROM `save_tmp_table` as stt
INNER JOIN (
-- в этом подзапросе находим для каждого из авторов максимальное число совместных публикаций с одним из лидеров 20-ки
SELECT first, MAX(count) as countMAX
FROM `save_tmp_table`
INNER JOIN (
-- В подзапросе выбираем 20 авторов, у которых максимально большое число одиночных публикаций - это наши лидеры
SELECT first AS Lider20ID, count AS LiderCount
FROM `save_tmp_table`
WHERE first = second
ORDER BY count DESC
LIMIT 20
) AS lider ON lider.Lider20ID = second
GROUP BY first
) AS graph ON stt.first = graph.first AND stt.count = graph.countMAX
INNER JOIN (
-- В подзапросе выбираем 20 авторов, у которых максимально большое число одиночных публикаций - это наши лидеры
SELECT first AS Lider20ID, count AS LiderCount
FROM `save_tmp_table`
WHERE first = second
ORDER BY count DESC
LIMIT 20
) AS lider ON lider.Lider20ID = stt.second
ORDER BY stt.first, stt.second;