利用聚合函数来去重

Posted 业精于勤,行成于思

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用聚合函数来去重相关的知识,希望对你有一定的参考价值。

select * FROM `test` 
WHERE `name` in (
  select a.`name` from(
    SELECT `name` FROM `test` GROUP BY `name` HAVING COUNT(*) >1
  )a
)
and `id` not in (
  select b.`id` from(
    select min(`id`) as id from test group by `name` having count(*)>1
  )b
)

主要思路是IN和NOT IN,用IN来查出哪些是重复的,然后用NOT IN来保留一条;

每个子查询中通过HAVING函数来判断重复;

mysql中不能在更新或删除表的同时去查询这个表,因此需要增加一个字表,否则会报错:

 You cant specify target table test for update in FROM clause

 

以上是关于利用聚合函数来去重的主要内容,如果未能解决你的问题,请参考以下文章

elasticsearch 进行聚合+去重查询

java Mongondb聚合函数&去重

Flask项目学习(Flask项目目录Flask聚合函数(基本聚合函数分组聚合函数去重聚合函数))

使用 pandas GroupBy 和时间序列重采样的平均聚合

list 去重

Oracle如何去重?