Załadowałem SQLfiddle tutaj:http://sqlfiddle.com/#!2/5349a/1 Jednak w twoich przykładowych danych miałeś dwa ID=5. Uczyniłem to wyjątkowym. Również moje dane SQLFiddle nie pasują już do twoich, ponieważ zmieniłem niektóre wartości, aby upewnić się, że działa. Baw się z tym :) (Działa to patrząc na największą wartość identyfikatora dla sekwencji)
Spróbuj tego:
SELECT COUNT(*)
FROM (
SELECT Subject, MAX(ID) AS idlimit
FROM t
GROUP BY Subject
ORDER BY MAX(ID) DESC
LIMIT 1,1) as Temp
JOIN t
ON Temp.idlimit < t.id