Ненавижу это говорить, но это один из тех редких случаев, когда временная таблица может помочь. Если вы поставите результаты этого:
select
imdb,
id,
count(*) as cnt
from subtitles
group by
imdb,
id
.. во временную таблицу вы можете получить строки, которые вам действительно нужны:
select
t.imdb,
t.id,
t.cnt
from MyTempTable t
inner join
(
select
imdb,
max(cnt) as maxcnt
from MyTempTable
group by
imdb
) as drv on t.imdb = drv.imdb and t.cnt = drv.maxcnt
.. и результаты вышеупомянутого могут быть объединены в вашу основную таблицу без необходимости повторной группировки.
Помогает ли это?
Извините за то, что не вставил весь SQL, но у меня не хватает времени. Это будет делать то, что вы хотите, но все равно будет дублировать, если количество одинаково. Запрос может быть изменен, чтобы справиться с этим, если вы заботитесь об этом.
В отдельном примечании, я не уверен, почему вы остаетесь включенным в оператор, когда вы не показываете данные из левой таблицы?