利用伪列(rowid)过滤某个字段重复记录,只获取一条记录

  • A+
所属分类:SQL笔记

千万级数据,某列记录存在重复而该列的其它列不重复,要求查询出不重复的所有记录;

  • 先利用ROWID不重复的特性获取唯一字段,可以使用min(ROWID)或max(ROWID),参考重复的[列1]进行分组,再查询所有字段。
  1. select *
  2. from 表名
  3. where ROWID in
  4. (select min(ROWID) from 表名 group by 列1)
  • 得到唯记录后可以直接创建一张新表,在语句前面加一段:
  1. create table 新表名 AS

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: