2012-12-10 4 views
1

는 SQL-서버에서 테이블을 감안할 때 재발 행을 찾기 두 번 이상.같은 동일한 두 열 값은

나는 쿼리

SELECT A+B, Count(A+B) FROM MyTable 
GROUP BY A+B 
HAVING COUNT(A+B) > 1 

첫 번째 질문

이 할 수있는 시간이 더 효율적인 방법이 있나요을 사용하고 있습니다?

SELECT A+','+B, Count(A+','+B) FROM MyTable 
GROUP BY A+','+B 
HAVING COUNT(A+','+B) > 1 

쿼리가 실패 : 나는 연결에 ,을 포함하여 출력의 일부 서식을 얻으려고 시도 할 때

두 번째 질문

를 (I 데이터베이스에 인덱스를 추가 할 수 없습니다) 오류

Column 'MyDB.dbo.MyTable.A' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause 

열 B에 대해서도 유사한 오류가 있습니다.

두 열을 구분하여 출력을 포맷하려면 어떻게해야합니까?

SELECT A, B, Count(*) FROM MyTable 
GROUP BY A, B 
HAVING COUNT(*) > 1 

을 그리고 그 일을 가장 효율적인 방법이다 (그래서 문제의 쿼리입니다) :

답변

5

그것은 나를 쓰기에 더 자연스러운 것 같다.

SELECT A + ',' + B, Count(*) FROM MyTable 
GROUP BY A, B 
HAVING COUNT(*) > 1 
+0

너무 간단하고 정확한 :

마찬가지로 위의 질의에, 당신은 당신의 두 번째 쿼리를 다시 작성할 수 있습니다. – himanshupareek66

관련 문제