182. 查找重复的电子邮箱
首先先是自连接,就是一个表自己和自己连接
SELECT DISTINCT x
.Email
As email
FROM Person
AS x
,Person
AS y
WHERE x
.Email
=y
.Email
AND x
.Id
<> y
.Id
运行时间大概如下图: 可见平均时间在3000ms左右 但是如果使用GROUP BY这种办法:
SELECT Email
FROM Person
Group by Email
HAVING count(*)>1
平均在2000ms左右提升了三分之一,1000ms左右 还有一种方法就是将结果存入零时表中,然后直接查询,因为零时表在内存中应该速度很快