В MySQL (так как вопрос был изначально помечен), вы можете использовать ORDER BY
и LIMIT
для возврата одной строки:
SELECT CUST_ID, COUNT(CUST_ID) AS C
FROM BANK_FD_ACCOUNT
GROUP BY CUST_ID
ORDER BY C DESC
LIMIT 1;
В случае дубликатов это вернет произвольный клиент. Если вы хотите все из них, используйте RANK()
:
SELECT c.*
FROM (SELECT CUST_ID, COUNT(*) AS C,
RANK() OVER (ORDER BY COUNT(*) DESC) as seqnum
FROM BANK_FD_ACCOUNT
GROUP BY CUST_ID
) c
WHERE seqnum = 1;
. Вы можете использовать ROW_NUMBER()
, чтобы вернуть одну строку (аналогично LIMIT
в примере MySQL).