次のようなSQL-Serverのテーブルを指定します。
Id INTEGER
A VARCHAR(50)
B VARCHAR(50)
-- Some other columns
AまたはBにインデックスがないので、AとBの一意の組み合わせが複数回発生する行を見つけたいと思います。
クエリを使用しています
SELECT A+B, Count(A+B) FROM MyTable
GROUP BY A+B
HAVING COUNT(A+B) > 1
最初の質問
これを行うためのより時間効率の良い方法はありますか?(データベースにインデックスを追加できません)
2番目の質問
,
連結にを含めることによって出力のフォーマットを取得しようとすると、次のようになります。
SELECT A+','+B, Count(A+','+B) FROM MyTable
GROUP BY A+','+B
HAVING COUNT(A+','+B) > 1
クエリはエラーで失敗します
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についても同様のエラーが発生します。
出力をフォーマットして2つの列を分離するにはどうすればよいですか?