需要通过给定的字段名称快速查找表中的重复项。
我有下面的查询,但即使我把索引放在表格字段上,它仍会运行1.5分钟。
select * from (
SELECT *,
ROW_NUMBER() OVER(PARTITION BY b.name) AS rowCount
FROM table b
) a
where a.rowCount > 1
答案 0 :(得分:1)
你可以这样做:
select name, count(*)
from table
group by name
having count(*) > 1;
答案 1 :(得分:0)
试试这个
select name, min(id), count(id)
from table
group by name
where count(id) > 1
如果您将名称列编入索引,这将会快得多。
答案 2 :(得分:0)
除了select子句中的name
之外,您可以直接获取重复的名称而不需要任何额外的列。
select name
from table
group by name
having count(*)>1