使用分析函数() over (by ... order by ...)进行分组编号,然后取出分组标签值为1的记录。目前主流数据库都支持分析函数,非常容易使用。
其中by指定按哪些字段进行分组,字段值相同的记录会编号在一起; order by 指定它们在同一组中的编号顺序。
示例(适用于SQL 2005或以上版本):
.*
从(
*,()over([手机号码][商店])
)s
.=1 -------------------------- 本文来自CSDN博客。 全文地址请点击:
多重重复数据删除:
######################################
--获取重复数据并放入表中
*
进入温度1
从
哪里 (
从
通过...分组
计数(*) > 1)
--删除原表中所有重复数据
从
哪里 (
来自临时 1
--对重复数据进行排序,并将第一个放回到原表中
进入 (,)
s.,s.
从 (
*, () over (按 order by) as
来自临时 1
)s
哪里。 = 1
##########################################
1、查询出重复数据,放入新表中:
身份证号、姓名
from( id,name,()over([id][any field]) from table ) a
哪里 a. >1
进入(ID,名称)
2、删除旧表中所有重复数据:
从表
其中 id in (来自新表的 id)
3、将新表中的重复数据放回到旧表中:
进入表(ID,名称)
* 从