oracle 分组查询

球员信息表 T:

球员id      球员名称      所在球队

12344       麦迪             火箭

34323       科比             活人

球员赛季得分表A,字段如下:

id         球员id         赛季         场均得分

01         34323          2013           34

02         12344          2013           12

03         43221          2013           23

04         12344          2014           20

05         43221          2014           26

06        34323           2014           38

.......

获取球员的往期赛季的最高得分 :  球员名称     所在球队   赛季     最高得分

select t.球员名称,t.所在球队,b.赛季,b.场均得分  from (

select * from (

select  a.* ,row_number() over(partition by a.球员id order by a.场均得分 desc) rn  from a

)  c  where c.rn =1

) b ,t  where t.球员id = b.球员id

时间: 2024-10-11 21:07:48

oracle 分组查询的相关文章

ORACLE分组查询和统计等

select flow_id,rw from (select t.flow_id ,rownum as rw from apex_030200.wwv_flow_list_templates t)  where rw >= 5 1.rownum只能用<如果使用>加别名 2.子查询引用只能在查询出的结果中引用,比如子查询没有查出flow_id,外层不能用,另外外层不能引用内层的t 3.薪水前三名,内层查出薪水 order desc的虚表外层使用rownum<3 4.merge可以实现

oracle 分组查询 子查询 统计查询 FROM加子查询临时表 查询高于平均工资 示例代码

---求平均工资 SELECT AVG(sal) FROM emp; -----------大于平均工资 SELECT e.ename,e.job,e.sal FROM emp e WHERE e.sal>(SELECT AVG(sal) FROM emp) -------- --e领导编号=m雇员编号 --emp雇员表,dept部门表 SELECT e.ename 雇员姓名,e.job 雇员职位,e.sal 雇员工资, m.ename 领导姓名,m.job 领导职位, d.dname 部门名称

oracle分组查询

分组函数 在分组函数中,如果有一个查找项分组,其他项必须也分组,比如下面的语句会报错,因为sal分组了,而ename没有分组: 1.显示工资最高的员工: 2.显示所有员工的平均工资: 2.1使用系统函数: 2.2自定义计算: 3.显示工资高于平均工资的员工信息: 对查询结果进行分组统计: 4.查询每个部门的最高工资和平均工资: 5.显示每个部门的每种岗位的平均工资与最高工资: 6.显示平均工资低于2000的部门号和它的平均工资: 对数据分组的总结 1 分组函数只能出现在选择列表.having.o

Oracle和MySQL分组查询GROUP BY

Oracle和MySQL分组查询GROUP BY 真题1.Oracle和MySQL中的分组(GROUP BY)有什么区别? 答案:Oracle对于GROUP BY是严格的,所有要SELECT出来的字段必须在GROUP BY后边出现,否则会报错:“ORA-00979: not a GROUP BY expression”.而MySQL则不同,如果SELECT出来的字段在GROUP BY后面没有出现,那么会随机取出一个值,而这样查询出来的数据不准确,语义也不明确.所以,作者建议在写SQL语句的时候,

oracle解决多表关联分组查询问题

做了一个功能需要分组查询,同时查询A表分组查询的ID需要关联B表的数据,本来想两个表关联查询,但是报group by 语法不正确.所以做了以下修改. select count(*), cindexid,(select vindexcode from comindex where pk_index =cindexid) as vindexcode ,iquesttype from rqt_examquest where pk_examquest in (    select cexamquesti

oracle中关联查询、分组查询

高级查询 1.关联查询作用:可以跨越多表查询 --查询出员工的名字和他所在部门的的名字//古老的写法select first_name,name from s_emp,s_dept where s_emp.dept_id = s_dept.id;//现在的写法select e.first_name,s.name from s_emp e join s_dept s on e.dept_id = s.id;语法:select 列,列,列 from 表1 join 表2on 表1外键=表2主键 案例

Oracle 高级查询1 关联查询 分组查询

高级查询 1.关联查询作用:可以跨越多表查询 --查询出员工的名字和他所在部门的的名字 语法:select 列,列,列 from 表1 join 表2on 表1外键=表2主键 2.外联接 左外联[left outer join] 以关联的左边为准,即使右边没有与之匹配的记录,则左边的记录也要 出现在结果集中,右边全部以NULL值显示. 右外联[right outer join] 以关联的右边为准,即使左边没有与之匹配的记录,则右边的记录也要 出现在结果集中,左边全部以NULL值显示. 3分组查询

Oracle的查询-分组查询

--查询出每个部门的平均工资 select e.deptno,avg(e.sal) from emp e group by e.deptno; 分组查询中,出现在 group by 后面的原始列,才能出现在 select 后面 没有出现在 group by 后面的原始列 ,想在 select 后边出现必须加上聚合函数 --查询出平均工资高于2000的部门 select e.deptno,avg(e.sal) from emp e group by e.deptno having avg(e.sa

(四)Oracle条件查询,分页查询

1. SQL(基础查询) 1.1基础查询 1.1.1. 使用LIKE条件(模糊查询) 当用户在执行查询时,不能完全确定某些信息的查询条件,或者只知道信息的一部分,可以借助LIKE来实现模糊查询.LIKE需要借助两个通配符: %:表示0到多个字符 _:标识单个字符 这两个通配符可以配合使用,构造灵活的匹配条件.例如查询职员姓名中第二个字符是'A'的员工信息: SELECT ename, job FROM emp WHERE ename LIKE '_A%'; 1.1.2. 使用IN和NOT IN