簡體   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