Sql 将带有group和having子句的select语句转换为delete?

Sql 将带有group和having子句的select语句转换为delete?,sql,duplicates,sybase,sql-delete,Sql,Duplicates,Sybase,Sql Delete,我对复制品有意见。此查询选择重复项 选择科目编号、科目cd、序号、计数(*) 从桌子上 按科目编号分组,科目cd,序号 计数(*)大于1的 现在我想把它转换成delete语句来删除select语句的结果 我已经将副本的1个副本移动到tmp表中,以便我可以从select?中删除所有数据 有人知道怎么做吗?我见过嵌套查询,但我不确定。试试这个: delete from MyTable where exists ( select 1 from MyTable t2 where MyT

我对复制品有意见。此查询选择重复项

选择科目编号、科目cd、序号、计数(*)
从桌子上
按科目编号分组,科目cd,序号
计数(*)大于1的
现在我想把它转换成delete语句来删除select语句的结果

我已经将副本的1个副本移动到tmp表中,以便我可以从select?中删除所有数据

有人知道怎么做吗?我见过嵌套查询,但我不确定。

试试这个:

delete from MyTable
where exists (
    select 1 from MyTable t2
    where MyTable.account_number=t2.account_number and MyTable.acc_cd=t2.acc_cd and MyTable.seq=t2.seq
)
试试这个:

delete from MyTable
where exists (
    select 1 from MyTable t2
    where MyTable.account_number=t2.account_number and MyTable.acc_cd=t2.acc_cd and MyTable.seq=t2.seq
)

大家好,干杯,当我试着在sybase中运行时,我得到了一个错误,“子查询只允许一个选择列表项”我以为问题出在count(*)上,但它仍然发生了?大家好,谢谢,但它不喜欢在WHERE in claus中有多个值。我只是想转到tmp表,然后删除where excistsHi,干杯,当我尝试在sybase中运行时,我得到了错误,“子查询只允许一个选择列表项”我以为问题出在count(*)上,但它仍然发生了?嗨,谢谢,但它不喜欢where in claus中的多个值。我只想转到tmp表,然后删除其中的激进分子