sql如何求分组计数之后计数的最大值

2025-02-22 11:53:34
推荐回答(4个)
回答1:

插入测试记录:

[sql] view plain copy

insert into students values('数学','Jack','Tianjin',80)  

insert into students values('数学','Jordan','Tianjin',80)  

insert into students values('数学','James','Beijing',55)  

insert into students values('英语','Jack','Tianjin',90)  

insert into students values('英语','Jordan','Tianjin',60)  

insert into students values('英语','James','Beijing',100)  

insert into students values('语文','Jack','Tianjin',60)  

insert into students values('语文','Tom','Tianjin',77)  

insert into students values('语文','Jordan','Tianjin',68)  


想要抓取每个科目第一名的整条信息,可以使用Row_number()函数:

select  *  

from (  

select course,stu_name,city,score,ROW_NUMBER() over(partition by course order by score desc) as rn  

from students  

) a  

where a.rn <=1;    

回答2:

  1. 分组查询,查询出每组数据的数量

    1. select count(*) from table group by xx

  2. 以上一个sql为结果集,查询出最大的数量

    1. select max(xx) from (select count(*) from table group by xx ) a

    2. a是取的别名

    3. xx是你分组的表的列名

    4. table换成表名

回答3:

用子查询啊
select max(a) from (select X1,X2,count(*) as a from table group by X1,X2) a
我说的绝对没问题。
子查询,X1,X2指你分组的字段,count(*) 指分组后的行数(计数),并定义别名是a
主查询 查最大的技术 注意 from 后面的子查询也定义了一个表别名

回答4:

select max(count(字段)) from 表名称 where 条件