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の意味ですか?また、私は2番目のバージョンを試して、カウント(*)> 1のバージョンを持っているよりも異なるレコード数を返しました – HLGEM

1

あなたがで別名を使用することはできませんhaving節。試してみてください:

SELECT 
    [ShipEmail], 
    COUNT(*) as ct 

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