【发布时间】:2013-06-28 14:59:10
【问题描述】:
我正在尝试按大表中的几列(近 18 000 行)搜索重复行。问题是查询需要很多时间,我试过这个:
SELECT * FROM table_name a, table_name b
WHERE a.col1 = b.col1
AND a.col2 = b.col2
AND a.col3 = b.col3
AND a.col4 = b.col4
AND a.id <> b.id
还有这个:
SELECT *
FROM table_name
WHERE col1 IN (
SELECT col1
FROM table_name
GROUP BY col1
HAVING count(col1) > 1
)
AND col2 IN (
SELECT col2
FROM table_name
GROUP BY col2
HAVING count(col2) > 1
)
AND col3 IN (
SELECT col3
FROM table_name
GROUP BY col3
HAVING count(col3) > 1
)
AND col4 IN (
SELECT col4
FROM table_name
GROUP BY col4
HAVING count(col4) > 1
)
他们都工作,但太慢了。有什么想法吗?
【问题讨论】:
-
我不明白为什么 Siphon 尝试使用
group by having count >1对您不起作用。您可以发布示例数据和期望的结果吗? -
他希望返回每一行。 group by 会给你一个重复的,但不是其他相同的行。因此,如果将 4 行分组在一起,那么 group by 将仅返回 1 行。这对每个人都不起作用,至少对他不起作用。