SQL: выбрать максимальное значение для каждого уникального ключа?
Извини я'я не уверен, как сформулировать это, и яЯ действительно не очень хорошо с SQL. ДБ двигатель я SQL Server Compact. В настоящее время у меня есть этот запрос:
SELECT *
FROM Samples
WHERE FunctionId NOT IN
(SELECT CalleeId FROM Callers)
ORDER BY ThreadId, HitCount DESC
Что дает мне:
ThreadId Function HitCount
1 164 6945
1 3817 1
4 1328 7053
Теперь мне нужен только результат с максимальным количеством совпадений для каждого уникального значения Thread. Другими словами, этот второй ряд должен быть удален. Я'Я не уверен, как это осуществить.
[EDIT] Если это помогает, это альтернативная форма того же запроса:
SELECT *
FROM Samples s1
LEFT OUTER JOIN Callers c1
ON s1.ThreadId = c1.ThreadId AND s1.FunctionId = c1.CalleeId
WHERE c1.ThreadId IS NULL
ORDER BY ThreadId
[EDIT] Я закончил вносить изменения в схему, чтобы избежать этого, так как предложенные запросы выглядели довольно дорого. Спасибо за помощь.