有两个意义上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略。

例如下表:table1

用户办理套餐的记录表,可看出,user_id=33333有两条完全重复的记录,user_id=11111的tc_name和open_date不一样

1、对于完全重复的记录,直接使用distinct 即可

select

distinct user_id,name,tc_name,open_date

from

table1

可得到如下结果:

可以看出,完全重复的记录已经只剩下唯一的一条,但是部分重复的记录该方法无效

2、对于完全重复的记录,还可以使用group by

select
        user_id,name,tc_name,open_date
from
        table1
group by
        user_id,name,tc_name,open_date

结果和上图一致,即:

该方法也只对完全重复的记录有效

3、row_number()over() 分等级之后限定 row=1

select
        user_id,name,tc_name,open_date
from
(
    select
          user_id,name,tc_name,open_date
         ,row_number()over(partition by user_id order by open_date desc) as row
   from
         table1
)
where row=1

该方法得到的结果如下:

该方法不仅除掉了完全重复的记录,而且还除掉了不完全重复的记录,对open_date进行排等级,按照开通日期的倒序排列,且取出第一条记录,即开通时间最近的记录

4、max等聚合函数

select
       user_id,name,max(tc_name),max(open_date)
from
       table1
group by
        user_id,name

该方法得出的结果如下,对完全重复记录和部分重复记录都有效,注:部分重复的记录要对所有重复字段使用max或min等才有效

最新文章

  1. SQL中exists、not exists以及in、not in的区别和使用
  2. EF – 1.模式
  3. python除法
  4. 【BZOJ】【1221】【HNOI2001】软件开发
  5. bzoj3798: 特殊的质数
  6. Mouse_event 鼠标点击
  7. TCP/IP协议详解内容总结
  8. OC - 11.使用Quartz2D剪裁图片并保存
  9. gulp 初体验
  10. SDUT 1304-取数字问题(DFS)
  11. 存储结构比较vector,list,dequeue,stack(转)
  12. Iframe父子窗口之间的跨域事件调用和传值
  13. MySQL根据出生日期计算年龄的五种方法比较
  14. Project file is incomplete. Expected imports are missing 错误解决方案
  15. APM和PIX飞控日志分析入门贴
  16. js--基础(对象、数组、函数、if语句、while语句、do while语句、continue语句、break语句)
  17. 用命令创建MySQL数据库
  18. 四则运算coding
  19. HDU 1848 Fibonacci again and again【博弈SG】
  20. js插入排序

热门文章

  1. linux命令-vim一般模式下复制剪切粘贴
  2. 仿QQ底部切换(Fragment + Radio)
  3. 2017 world final
  4. Java解析XML:Jdom解析和SAX解析
  5. Tomcat+Nginx实现动静分离
  6. 1.3 DVWA亲测sql注入漏洞
  7. android开源项目:图片下载缓存库picasso
  8. Permutations and Permutations II
  9. lj的锁
  10. 洛谷P4121 [WC2005]双面棋盘(线段树套并查集)