--------------------------------------------------------------------------------------- ------------------------------- 经典成绩排名 ---------------------------------------- --------------------------------------------------------------------------------------- -- drop table L_Class create table L_Class ( c_id varchar2(20) not null primary key, c_name varchar2(100), c_no varchar2(50) not null unique -- 班级编号 ); -- drop table L_Student create table L_Student ( s_id varchar2(20) not null primary key, s_no varchar2(50) not null unique, -- 学号 s_name varchar2(100), c_no varchar2(50) not null -- 班级编号 ); -- drop table L_Score; create table L_Score ( sc_id varchar2(20) not null primary key, sc_score number, sc_subject varchar2(50), s_no varchar2(50) not null -- 学号 ); -- 外键约束 alter table L_Student add constraint Class_Student_FK foreign key (c_no) references L_Class (c_no); alter table L_Score add constraint Score_Student_FK foreign key (s_no) references L_Student (s_no); ----------------------- insert into L_Class values('1','1班','c1'); insert into L_Class values('2','2班','c2'); insert into L_Class values('3','3班','c3'); insert into L_Student values('1','s1','david1','c1'); insert into L_Student values('2','s2','david2','c1'); insert into L_Student values('3','s3','david3','c1'); insert into L_Student values('4','s4','tom1','c2'); insert into L_Student values('5','s5','tom2','c2'); insert into L_Student values('6','s6','tom3','c2'); insert into L_Student values('7','s7','kevin','c3'); insert into L_Student values('8','s8','jerry','c3'); insert into L_Student values('9','s9','fish','c3'); insert into L_Student values('10','s10','peter','c3'); insert into L_Score values('1','61','语文','s1'); insert into L_Score values('2','62','语文','s2'); insert into L_Score values('3','63','语文','s3'); insert into L_Score values('4','64','语文','s4'); insert into L_Score values('5','65','语文','s5'); insert into L_Score values('6','66','语文','s6'); insert into L_Score values('7','67','语文','s7'); insert into L_Score values('8','68','语文','s8'); insert into L_Score values('9','69','语文','s9'); insert into L_Score values('10','70','语文','s10'); insert into L_Score values('11','71','数学','s1'); insert into L_Score values('12','72','数学','s2'); insert into L_Score values('13','73','数学','s3'); insert into L_Score values('14','74','数学','s4'); insert into L_Score values('15','75','数学','s5'); insert into L_Score values('16','76','数学','s6'); insert into L_Score values('17','77','数学','s7'); insert into L_Score values('18','78','数学','s8'); insert into L_Score values('19','79','数学','s9'); insert into L_Score values('20','80','数学','s10'); select * from L_Student t; select t.* from L_Class t; select * from L_Score t; ---- (全年级) 各科 成绩排名 select * from ( select s.s_name 姓名, sc.sc_score 成绩, --row_number() 行号,没有并列第一 --dense_rank() 有并列第一,接下来就是第二, --rank() 有并列第一,接下来就是第三 dense_rank() over(partition by c.c_no, sc.sc_subject order by sc.sc_score desc) 排名, sc.sc_subject 科目, c.c_name 班级 from L_Class c, L_Student s, L_Score sc where c.c_no = s.c_no and s.s_no = sc.s_no --and c.c_name = '3班' --查询3班各科成绩排名 ) tmp where tmp.排名 <= 3 -- 前 3 名 --对结果集按照 班级、科目 排序 order by tmp.班级 desc, tmp.科目 desc, tmp.成绩 desc; ------------------------------------------------------------------------------------- ---------------------------- group by ... having ... --------------------------- ------------------------------------------------------------------------------------- --- 查询成绩表中成绩 >64 的记录,成绩分组 select sc.sc_score from L_Score sc group by sc.sc_score having sc.sc_score > 75 order by sc.sc_score desc; ------------------------------------------------------------------------------------- ---------------------------- 去除重复数据 ------------------------------------- ------------------------------------------------------------------------------------- drop table L_User; create table L_User ( u_id varchar2(20) not null primary key, u_name varchar2(100), u_age number ); insert into L_User values('1','david',20); insert into L_User values('2','david',20); insert into L_User values('3','kevin',23); insert into L_User values('4','tom',25); insert into L_User values('5','kevin',30); insert into L_User values('6','kevin',20); select t.*,rowid,rownum from L_User t where rownum < 5; --- 去重( 去除名字相同的记录,保留一条 ) delete from L_User u1 where u1.rowid < (select max(u2.rowid) from L_User u2 where u1.u_name=u2.u_name); --- 去重( 去除年龄相同的记录,保留一条 ) delete from L_User u1 where u1.rowid < (select max(u2.rowid) from L_User u2 where u1.u_age=u2.u_age); --- 去重( 去除名字、年龄都相同的记录,保留一条 ) delete from L_User u1 where u1.rowid < (select max(u2.rowid) from L_User u2 where u1.u_name=u2.u_name and u1.u_age=u2.u_age);
相关推荐
oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具...
### Oracle字段去重详解 #### 一、Oracle字段去重概念与应用场景 在数据库操作过程中,数据表中可能会出现重复的数据记录,这不仅浪费存储空间,还可能导致数据分析时出现错误的结果。因此,去除重复记录是数据库...
在数据库管理领域,Oracle SQL和MySQL SQL是两种广泛使用的SQL方言,它们在语法和功能上存在一定的差异。当需要将一个基于Oracle SQL的应用程序迁移到MySQL环境时,就需要进行SQL语句的转换工作。本项目提供了一个...
由于标题和描述是重复的且没有提供实质性的内容,我们无法从中得知具体的Oracle SQL高级编程知识点。但是,从标题我们可以推测该文档可能是关于如何使用Oracle数据库中的SQL语言进行高级编程。Oracle数据库是一个...
oracle sql案例的分享ppt,具体调优和改写sql的例子
Oracle SQL是数据库管理员和开发人员用来与Oracle数据库交互的语言,它是SQL标准的扩展,提供了许多特有的功能和优化。本资源“Oracle Sql基础(beginning oracle sql中文版)”旨在为初学者提供一个全面的Oracle ...
本文提供的经典练习题旨在帮助初学者熟悉SQL语句的编写,特别是针对Oracle数据库特有的功能。以下将详细讲解涉及的知识点。 1. **基本查询操作**:练习题中包含了查询员工表(emp)和部门表(dept)的基础信息,...
Oracle SQL 是一种强大的数据库查询和编程语言,广泛用于管理和操作Oracle数据库系统。11g第二版(11G2)是Oracle的一个重要版本,提供了许多增强功能和优化。本官方文档集包括四份重要的参考资料,涵盖了Oracle SQL...
根据题目中提供的 SQL 语句,我们可以看到这是一个较为复杂的去重操作案例,它不仅仅使用了 GROUP BY 进行分组,还结合了 EXISTS 子查询来进一步过滤结果。 #### SQL 语句解析 ```sql SELECT * FROM person_real_...
主要讲述oracle sql 的开发以及优化,对低效率的sql的优化方法和诊断技巧
不过,根据标题《ORACLE SQL入门与实战经典》,我们可以推断出这是一本关于Oracle SQL语言学习和应用的书籍。Oracle SQL是Oracle数据库的核心技术之一,用于数据查询、定义、更新和管理。接下来,将详细介绍Oracle ...
Oracle SQL Developer 是一款由Oracle公司推出的免费数据库管理工具,它为数据库管理员(DBA)和开发人员提供了一个全面的集成环境,以便于管理和操作Oracle数据库。这个工具的强大之处在于其直观的用户界面和广泛的...
传入一个字符串和该字符串的分割字符,返回去重后的字符串,可以直接在plsql中运行,简单的函数运用,能处理oracle中。资源仅供参考
精通Oracle SQL【第2版】ORACLE SQL高级编程【第二版】学习笔记
在这个案例中,你需要MySQL 5.6.37、Oracle 11g以及Oracle SQL Developer。MySQL是源数据库,Oracle是目标数据库,而SQL Developer则作为迁移的桥梁。安装MySQL并配置好用户和密码,推荐使用Navicat for MySQL来管理...
Oracle SQL Developer 是一款由Oracle公司推出的强大的数据库管理工具,它为数据库管理员(DBA)、开发者以及数据分析师提供了全面的功能,以高效地管理和操作Oracle数据库。本文档将深入讲解Oracle SQL Developer的...
### Oracle SQL Developer 使用教程 #### 一、Oracle Database Home Page 的使用 在开始介绍 Oracle SQL Developer 的使用之前,我们先来看看如何使用 Oracle Database Home Page。这部分内容非常重要,因为它是...
《精通Oracle SQL(第2版)》是一本深入解析Oracle数据库查询语言的专业书籍,由Oracle ACE和OakTable团队的专家共同撰写,集成了他们的丰富经验和专业知识。这本书旨在帮助读者掌握Oracle SQL的高级技巧,提升在...