在Oracle数据库中,要使用DISTINCT
关键字结合子查询,你可以按照以下步骤操作:
SELECT DISTINCT
语句来选择不重复的数据。在DISTINCT
关键字之后,列出你想要从子查询结果中选择的列。WHERE
子句中使用子查询来进一步过滤结果。下面是一个简单的示例,说明如何使用DISTINCT
和子查询:
假设我们有两个表:employees
和departments
,它们具有以下结构:
employees
emp_id | emp_name | dept_id |
---|---|---|
1 | Alice | 101 |
2 | Bob | 101 |
3 | Carol | 102 |
4 | David | 102 |
departments
dept_id | dept_name |
---|---|
101 | HR |
102 | Finance |
现在,如果我们想要找出每个部门的唯一员工数量,我们可以使用以下查询:
SELECT DISTINCT dept_id, COUNT(*) AS unique_employee_count
FROM (
SELECT emp_id, dept_id
FROM employees
) AS subquery
GROUP BY dept_id;
在这个查询中,我们首先创建了一个子查询(subquery),它从employees
表中选择所有员工的ID和部门ID。然后,在主查询中,我们使用SELECT DISTINCT
来选择不重复的部门ID和计算每个部门的唯一员工数量。最后,我们使用GROUP BY
子句按部门ID对结果进行分组。