插入测试记录:
[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;
分组查询,查询出每组数据的数量
select count(*) from table group by xx
以上一个sql为结果集,查询出最大的数量
select max(xx) from (select count(*) from table group by xx ) a
a是取的别名
xx是你分组的表的列名
table换成表名
题目是显示选课门数最多同学的学号和选课门数
追答你的表结构是什么样子的,1张表吗,给我截个图也许啊
追问你试试,应该是可以的
追问a和b是什么意思?
a 和b 分别是两个结果集的别名
select * from
(select Sno , count(*) from sc group by Sno) a
where count = (select max(count) from (select count(*) from sc group by Sno) b)
我把你表都弄下来了,试了挺好
count 是unknown
追答我这里是没问题的,未知列可能是没加别名的问题, 那你count(*)加上别名count(*) c
报错,好像不能套用
sql如何求分组计数之后计数的最大值
[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('...
sql语句。。查询:分组的总和的最大值。。。
select name,count(*) from 表 group by name 这样显示出来就是 ss 3 dd 2 如果后面加上 where name='ss'那么结果就是ss 3 所以也就不存在什么max(总和)了,因为你已经锁定了name了。另外,如果要查max(总和),那么代码如下:select max(x.ACount) 最大总和 from (select name,count(*...
SQL查询取分组最大值
select t1.分类,t1.商品名称,table.库存,t1.更新时间 from (select 分类,商品名称,max(更新时间) 更新时间 from table group by 分类,商品名称 ) t1 inner join table on t1.分类=table.分类 and t1.商品名称=table.商品名称 and t1.更新时间 =table.更新时间 ...
sql语言 怎么求每组最大,就是用group by 分组后,求每组某列最大?
在分组中使用max()函数即可。例图中表格:按b列分组,求D列最大值:select b,max(d)from a group by b 如果是最小,则可以使用 min()函数
sql 怎么实现同表分组后的组数据相除拿最大的一组数据。大概sql是这 ...
平均值?用笛卡尔积 select max(c1\/convert(decimal(10,2),c2)) from (select count(cst_id) as c1 from customer where cst_created >='2012-08-01 00:00:00' and cst_created<='2012-08-31-23:59:59'and cst_mobile is not null group by cst_userid) a,(select count(b.cst_id...
求助sql分组取最大唯一值
select max(aaaa) from (select distinct (值) aaaa from 表名 group by 分组字段) T;其中distinct()过滤重复值,max()取最大值。
sql查询 分组后 每组某字段值最大的一行所有列
1、第一个方法,需要考虑ID有重复值的问题,如果最大值存在重复值,那么结果也重复。SELECT * FROM 员工信息变化表 T1 WHERE id = (SELECT Max (id) FROM 员工信息变化表 T2 WHERE T1.员工ID = T2.员工ID)2、第二个方法:该语句是在SQL Server中编写的,应该不适用于MySQ和Oracle。排...
oracle sql查询完成分组并只返回每组的最小最大值
我的测试表里有7条数据。每3条数据分作一组求最小和最大id。WITH tmp ("id") AS (SELECT 1 FROM DUAL UNION ALLSELECT 2 FROM DUAL UNION ALLSELECT 3 FROM DUAL UNION ALLSELECT 4 FROM DUAL UNION ALLSELECT 5 FROM DUAL UNION ALLSELECT 6 FROM DUAL UNION ALLSELECT 7 FROM DUAL ) ...
SQL分组查询最大值最小值
查询语句参考如下:select UserName,-- Convert(char(8),dealTm,112) as date,--日期 min(dealTm) as earliestTime ,--最大 max(dealTm) as latestTime--最小 from t2 group by Convert(char(8),dealTm,112) ,UserName
sql 分组 求出每组最大的数据有几条
--创建数据create table T([name] varchar(20),[value] int);insert into Tselect 'A',1unionselect 'A',2unionselect 'B',1--查询分组后每组中最大的数据有多少条select a.n,count(*) from(select [name] n,max([value]) mv from T group by [name]) ainner join T b on a....