在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对结果进行分组。