Если вы используете Oracle (способ отображения результатов вашего запроса предполагает это), то вы можете использовать синтаксис FETCH FIRST N ROWS ONLY
для отображения только записи с максимальным количеством. Этот синтаксис доступен начиная с Oracle 12.1.
SELECT
N.National_PosID,
N.Title,
C.First_Name,
C.Mid_Name,
C.Last_Name, count(*) cnt
FROM
National_Position N
INNER JOIN Candidate C ON N.National_PosID = C.National_PosID
INNER JOIN Vote V ON V.Candidate_ID = C.Candidate_ID
GROUP BY
N.National_PosID,
N.Title,
C.First_Name,
C.Mid_Name,
C.Last_Name
ORDER BY cnt DESC
FETCH FIRST 1 ROWS ONLY;
В Mysql (и Postgres) просто замените FETCH FIRST 1 ROWS ONLY
на LIMIT 1
.
Примечание: неявные объединения перестали пользоваться давно назад. Всегда используйте явные объединения. Я изменил ваш запрос соответственно.
SELECT *
FROM (
SELECT
N.National_PosID,
N.Title,
C.First_Name,
C.Mid_Name,
C.Last_Name, count(*) cnt
FROM
National_Position N
INNER JOIN Candidate C ON N.National_PosID = C.National_PosID
INNER JOIN Vote V ON V.Candidate_ID = C.Candidate_ID
GROUP BY
N.National_PosID,
N.Title,
C.First_Name,
C.Mid_Name,
C.Last_Name
ORDER BY cnt DESC
) x
WHERE ROWNUM = 1