Oracle经典SQL:查找重复记录与数据分析

需积分: 15 1 下载量 177 浏览量 更新于2024-08-15 收藏 707KB PPT 举报
本文主要介绍了如何使用Oracle的经典SQL语句来处理数据库中的重复记录以及执行一些基本的数据查询操作。首先,通过创建名为`emp1`的新表并插入重复的`emp`表数据,演示了如何查找具有特定条件下的重复记录。SQL查询的关键在于使用`rowid`字段和`nvl()`函数来处理可能存在的空值(NULL): 1. 查询重复记录: 使用子查询和`rowid`字段,该查询会找出具有相同`empno`, `ename`, `job`, `mgr`, `sal`和`deptno`的记录,即使这些字段中有NULL值也被考虑在内。`nvl()`函数确保了空值被转换为非空值进行比较。 2. 日期提取: Oracle SQL提供了`extract()`函数,可以从中提取年、月、日等部分,如`extract(year from sysdate)`用于获取当前日期的年份。 3. 查询平均工资与部门: 分别展示了两种方法来获取每个部门的最低平均工资,一种是在`where`子句中嵌套查询,另一种是通过子查询计算平均工资并将其作为外部查询的条件。 4. 比较员工薪资: SQL查询用来找出工资高于部门平均工资的员工,有两种写法,一种是将平均工资查询放在`where`子句中,另一种是将平均工资查询作为`from`子句中的子查询,并通过`deptno`关联。 5. 查询管理者分布: 通过`count(distinct)`和`group by`语句,统计每个部门中非空`mgr`值的数量,即管理者数量。 这些都是Oracle SQL在数据分析和数据清理中的实用技巧,可以帮助用户有效地管理和分析数据,确保数据的准确性和完整性。