繁体   English   中英

如何提高此SQL选择查询的效率和性能

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM