如何用sql语句?
例如,在伪代码中:
select count(field1,field2,field3)
from table
where the combination of field1, field2, field3 occurs multiple times
从上面的陈述中,如果有多个事件,我想选择除了第一个以外的每个记录。
你提到“第一个”,所以我假设你有一些对你的数据进行排序。假设您的数据是按某个字段排序的ID。
这个SQL应该会得到除第一个以外的重复条目。它基本上选择所有具有(a)相同字段和(b)较低ID的行存在的行。性能不会很好,但它可能会解决您的问题。
SELECT A.ID, A.field1, A.field2, A.field3
FROM myTable A
WHERE EXISTS (SELECT B.ID
FROM myTable B
WHERE B.field1 = A.field1
AND B.field2 = A.field2
AND B.field3 = A.field3
AND B.ID < A.ID)
要获取有多个记录的字段列表,可以使用..
select field1,field2,field3, count(*)
from table_name
group by field1,field2,field3
having count(*) > 1
请查看此链接以获取有关如何删除行的更多信息。
http://support.microsoft.com/kb/139444
编辑:正如其他用户提到的,在上面的链接中使用该方法之前,应该有一个标准来决定如何定义“第一行”。基于此,如果需要,您将需要使用order by子句和子查询。如果你可以发布一些样本数据,那真的很有帮助。