技术开发 频道

MySQL教程:清除结果集中的重复数据

  解决方案是,将GROUP_BY结果与原始表进行合并。在这里,我们只有一个字段,即salary:

SELECT emp2.dept_id,
       emp1.name,
       emp1.gender,
       emp2.max_salary
FROM (
  
SELECT dept_id,      
         Max(salary)
as max_salary
  FROM   employees
  GROUP BY dept_id
)
as emp2 JOIN employees as emp1 ON emp1.salary = emp2.max_salary
GROUP BY dept_id;

  现在,name和gender字段属于最高工资者:

  六、小结

  很多时候,我们都需要清除结果集中的重复内容。为了解决这个问题,一个办法是在选择语句中加入关键字distinct。该关键字的作用是让查询引擎清楚重复内容,以便得到一个无重复记录的结果集。也许您还不知道,实际上group by子句也可用来删除重复的内容, 本文为读者介绍了两者之间的不同之处,以及它们是如何生成理想的结果集的。当然,我们还可以使用工作单元表和动态SQL删除结果集中的重复数据。有机会我们将在后文中专门加以讲解。

2
相关文章