码迷,mamicode.com
首页 > 其他好文 > 详细

利用聚合函数来去重

时间:2018-01-13 20:44:03      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:from   div   pos   ble   通过   weight   思路   style   can   

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

 

利用聚合函数来去重

标签:from   div   pos   ble   通过   weight   思路   style   can   

原文地址:https://www.cnblogs.com/huqiaoblog/p/8280298.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!