postgresql中的计数和最大值组合
我在postgresql中遇到了一个sql问题,希望能在这里得到一些帮助 我有一个名为visitor的表,其中包含一个名为postgresql中的计数和最大值组合,postgresql,count,max,Postgresql,Count,Max,我在postgresql中遇到了一个sql问题,希望能在这里得到一些帮助 我有一个名为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 C
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函数的问题,但不知道怎么做,现在有人知道怎么做了吗?我们可以在这里使用
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;
我们可以在此处使用
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;
@StuartLC这是一个问题,即如果两个或两个以上的fk_员工id因计数最高而并列,如何返回多个
fk_员工id
。@StuartLC告诉我;可悲的是,这几天我看到的大多数问题都是这样的:~(您好,是的,如果有两个最频繁的值,我希望返回,示例值5和6是最频繁的。@StuartLC这是一个问题,即如何返回多个fk_employee_id
,两个或多个值是否因计数最高而并列。@StuartLC告诉我这一点;遗憾的是,大多数人都是这样这些天我看到的问题:~(嗨,是的,如果有两个最频繁的值,我希望返回,示例值5和6是最频繁的。Thx Tim解决了我的问题,现在我学习了一个新的函数rank:-)@Michael你能通过点击答案左边的绿色复选标记来标记这个答案吗?Thx Tim,这解决了我的问题,现在我学习了一个新的函数秩:-)@Michael你能通过点击答案左边的绿色复选标记来标记这个答案吗?