Объединить количество и максимум в Postgresql SQL - PullRequest
0 голосов
/ 13 июня 2018

У меня есть проблема, чтобы сформулировать вопрос sql в postgresql, в надежде получить некоторую помощь здесь

У меня есть таблица с именем visitor, которая содержит столбец с именем fk_employee_id, fk_employee_id содержит другое число между 1-10, пример:

1,3,4,6,4,6,7,3,2,1,6,7,6

Теперь я хочу выяснить, какое значение наиболее часто встречается в этом столбце (в данном случае 6). Я задал вопрос, который, кажется, решает мой вопрос;

SELECT fk_employee_id
FROM visitor
GROUP BY fk_employee_id
ORDER BY COUNT(fk_employee_id) DESC
LIMIT 1

но этот вопрос не решается, если наиболее часто встречаются два значения.Поэтому вместо этого я пытаюсь написать вопрос, который содержит функцию max, но не могу понять, как, кто-нибудь сейчас, как это сделать?

1 Ответ

0 голосов
/ 13 июня 2018

Мы можем использовать RANK здесь, чтобы немного изменить ваш текущий запрос:

WITH cte AS (
    SELECT
        fk_employee_id,
        RANK() OVER (ORDER BY COUNT(*) DESC) rank
    FROM visitor
    GROUP BY fk_employee_id
)

SELECT fk_employee_id
FROM cte
WHERE rank = 1;

Демо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...