2010-12-15 3 views
1

저는 MS SQL에 매우 익숙하며 모든 중복 전자 메일을 테이블에 가져 오려고합니다. MySQL에서 작동하는 비슷한 쿼리를 발견했지만 MS SQL에서 실행할 때 잘못된 열 이름 'ct'오류가 발생합니다.간단한 MS SQL 버그

내가 실행 쿼리입니다 : 내가 이상 찾고 매우 간단한 일이 추측하고

SELECT 
    [ShipEmail], 
    COUNT(*) as ct 

FROM [ShipWorksDefault].[dbo].[Customers] GROUP BY [ShipEmail] HAVING [ct] > 1 

.

미리 감사드립니다.

답변

9

그냥 열 별칭을 사용하지 않는 HAVING 절을 변경 :

HAVING COUNT (*)를> 1

0
SELECT 
    [ShipEmail], 
    COUNT(*) as ct 
FROM [ShipWorksDefault].[dbo].[Customers] 
GROUP BY [ShipEmail] HAVING COUNT(*) > 1 

또는

SELECT 
    [ShipEmail], 
    COUNT(*) as ct 
FROM [ShipWorksDefault].[dbo].[Customers] 
GROUP BY [ShipEmail] HAVING COUNT([ShipEmail]) > 1 
+0

count (*)> 1입니까? 또한 두 번째 버전을 시도하고있는 countnt (*)> 1 버전보다 많은 수의 레코드가 반환되었습니다. – HLGEM

1

당신의 별칭을 사용할 수 없습니다 having 절. 시도 :

SELECT 
    [ShipEmail], 
    COUNT(*) as ct 

FROM [ShipWorksDefault].[dbo].[Customers] GROUP BY [ShipEmail] HAVING COUNT(*) > 1