这个脚本非常慢。我怎样才能让它更快?它正在针对大量数据运行。
我需要找到一组字段应该具有相同值但不要的情况。
以下是查询的简洁示例:
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行。
答案 0 :(得分:0)
不确定它是否更快,但这里的查询与你的查询相同,更简洁。我认为你不需要子查询。
SELECT UserID, ColA, ColB, ColC
FROM #Example a
GROUP BY UserID, ColA, ColB, ColC
HAVING COUNT(DISTINCT ColD) > 1;