清除冗余记录的SQL语句
<script type="text/javascript">
</script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
问题:设表T中有五个字段A,B,C,D,ID,其中ID字段是为自动增量整型字段(唯一值)。业务数据生成时有重复插入现象,现需对A、B、C、D四字段完全一样的脏数据进行清理,要求一 SQL 语句,对四个字段完全一样的记录,仅保留ID最小的一条,其余作删除处理。
DELETEFROMTWHERE[ID]IN
(
select[ID]fromTwhereAin
(selectA fromTGroupByA,B,C,DHavingcount(*)>1)
and[ID]<>
(selectmin(ID)asminID fromTGroupByA,B,C,DHavingcount(*)>1)
)
更正:
deletefromT
whereT.IDnotin(selectmin(ID)fromTgroupbyT.A,T.B,T.C,T.D)
<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript">
</script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
问题:设表T中有五个字段A,B,C,D,ID,其中ID字段是为自动增量整型字段(唯一值)。业务数据生成时有重复插入现象,现需对A、B、C、D四字段完全一样的脏数据进行清理,要求一 SQL 语句,对四个字段完全一样的记录,仅保留ID最小的一条,其余作删除处理。
DELETEFROMTWHERE[ID]IN
(
select[ID]fromTwhereAin
(selectA fromTGroupByA,B,C,DHavingcount(*)>1)
and[ID]<>
(selectmin(ID)asminID fromTGroupByA,B,C,DHavingcount(*)>1)
)
更正:
deletefromT
whereT.IDnotin(selectmin(ID)fromTgroupbyT.A,T.B,T.C,T.D)
<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript">
</script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>