在postgresql中查找列中出现次数最多的值集

在postgresql中查找列中出现次数最多的值集,postgresql,Postgresql,打印most班级注册学生的姓名和SID 报名 学生 希德·斯奈姆 输出 按学生分组注册、按计数排序和使用限制1: select s.id, s.name from student s join enroll e on e.sid = s.id group by s.id, s.name order by count(*) desc limit 1 请注意,您不需要选择计数*-您只需参考它即可。我认为这将对您有所帮助 SELECT <column_name> FROM <tab

打印most班级注册学生的姓名和SID

报名

学生 希德·斯奈姆

输出


按学生分组注册、按计数排序和使用限制1:

select s.id, s.name
from student s
join enroll e on e.sid = s.id
group by s.id, s.name
order by count(*) desc
limit 1

请注意,您不需要选择计数*-您只需参考它即可。

我认为这将对您有所帮助

SELECT <column_name> FROM <table_name> WHERE <column_name>=
(SELECT <column_name>
 FROM (SELECT <column_name>, count(*) as cnt FROM <table_name> GROUP BY <column_name>) AS foo
 WHERE foo.cnt=(SELECT MAX(c) FROM (SELECT <column_name>,count(*) AS c FROM <column_name> GROUP BY <column_name>) AS bar)) limit 1
对于这个简单的问题,有很多很好的适用材料,您要查找的术语是聚合分组方式,特别是计数-您可以将分组方式与计数和订单方式与限制1结合起来。
1    sagar
2    kiran
3    ravi
4    vishal
sid   sname
1     sagar
select s.id, s.name
from student s
join enroll e on e.sid = s.id
group by s.id, s.name
order by count(*) desc
limit 1
SELECT <column_name> FROM <table_name> WHERE <column_name>=
(SELECT <column_name>
 FROM (SELECT <column_name>, count(*) as cnt FROM <table_name> GROUP BY <column_name>) AS foo
 WHERE foo.cnt=(SELECT MAX(c) FROM (SELECT <column_name>,count(*) AS c FROM <column_name> GROUP BY <column_name>) AS bar)) limit 1