[英]How to improve the efficiency and performance of this SQL select query
这个脚本很慢。 我怎样才能使其更快? 它正在针对大量数据运行。
我需要找到一些实例,其中一组字段应该具有相同的值,但没有相同的值。
这是查询的简洁示例:
CREATE TABLE #Example ( ID int, UserID int, ColA char(1), ColB char(1), ColC char(1), ColD char(1))
INSERT INTO #Example VALUES (1, 1, 'A', 'B', 'C', 'D');
INSERT INTO #Example VALUES (2, 1, 'A', 'B', 'C', 'D');
INSERT INTO #Example VALUES (3, 1, 'A', 'B', 'C', 'D');
INSERT INTO #Example VALUES (4, 1, 'A', 'B', 'C', 'D');
INSERT INTO #Example VALUES (5, 1, 'A', 'B', 'C', 'X');
SELECT UserID, ColA, ColB, ColC
FROM ( SELECT DISTINCT a.UserID, a.ColA, a.ColB, a.ColC, a.ColD FROM #Example a ) x
GROUP BY UserID, ColA, ColB, ColC
HAVING COUNT(ColD) > 1
照原样,这将返回1行,这就是我想要的,只是速度很慢。 如果第5行中的X是D,则返回0行。
不知道它是否更快,但是这里的查询与您编写得更简洁相同。 我认为您不需要子查询。
SELECT UserID, ColA, ColB, ColC
FROM #Example a
GROUP BY UserID, ColA, ColB, ColC
HAVING COUNT(DISTINCT ColD) > 1;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.