データベースをチェックして重複エントリを特定していますが、それができる一方で、データベースをサニタイズできるように、他の列 (アクティブ、ユーザー ID など) も結果に表示する必要があります。簡単に思えますが、うまくいきません。
MSSQL を使用するには、何よりも一般的なアプローチが必要です。
つまり、要約すると、重複を識別するためのほとんど複雑なクエリが機能していますが、最終出力で「ユーザーはアクティブです」または「ユーザーは #4367」などの結果を単純に表示することはまだできません。前もって感謝します。CREATE VIEW が答えかもしれないと思ったのですが、まだ運がありません。JOIN は複雑すぎて機能しすぎて、WHERE が詰まる (構文が悪い?)
質問する
1846 次
3 に答える
2
を使用Group By
して追加の列を追加すると、追加の列によってもグループ化されます。
サブクエリとグループ化されていないメイン クエリが必要です。
SELECT *
FROM users
WHERE fullname IN (SELECT fullname
FROM users
GROUP by fullname
HAVING ( COUNT(fullname) > 1 ))
SELECT *
を上記に変更することもできますSELECT DISTINCT *
。
于 2013-09-17T01:39:32.470 に答える
0
単純に自己結合を使用してください。このようなもの (値は ID の重複をチェックするものであり、一意の行 ID であり、ユーザー ID はレポートする別の値です):
SELECT a.Value, a.ID, a.UserID
FROM MyTable a
JOIN MyTable b
ON (a.Value = b.Value and a.ID <> b.ID)
ORDER BY a.ID
于 2013-09-17T01:38:51.937 に答える