SQLを使用して、テーブル内の特定の列にデータが複数回表示されているかどうかを確認したい。ここで私がこれまで持っているものの、私のSQLコードは次のとおりです。アイテムがデータベース列に複数回表示されるかどうかを確認
select * from AXDelNotesNoTracking where count(salesid) > 1
salesid
は、私が確認したい列、任意の助けをいただければ幸いです、感謝です。
SQLを使用して、テーブル内の特定の列にデータが複数回表示されているかどうかを確認したい。ここで私がこれまで持っているものの、私のSQLコードは次のとおりです。アイテムがデータベース列に複数回表示されるかどうかを確認
select * from AXDelNotesNoTracking where count(salesid) > 1
salesid
は、私が確認したい列、任意の助けをいただければ幸いです、感謝です。
それは次のようになります。
SELECT SalesID, COUNT(*)
FROM AXDelNotesNoTracking
GROUP BY SalesID
HAVING COUNT(*) > 1
あなたの最初のクエリについて:
編集:
そして私はちょうどあなたがそこに複数回(これは、使用しているデータベースによって異なります)にされている項目を参照したい場合は、この考え:
;WITH cte AS (
SELECT *, ROW_NUMBER() OVER (PARTITION BY SalesID ORDER BY SalesID) AS [Num]
FROM AXDelNotesNoTracking
)
SELECT *
FROM cte
WHERE cte.Num > 1
もちろん、これは同じSalesIDで登場したが、複数回出現した最初のSalesID値を表示していない行を示しています。つまり、SalesIDが3回表示された場合、このクエリはインスタンス2と3を表示しますが、最初のインスタンスは表示しません。それでも、複数のSalesID値を探している理由に応じて役立ちます。
EDIT2:
次のクエリは、以下APCによって掲示し、それがSalesIDが複数回登場しているのすべての行を示している中で、私は上記の言及CTEよりも優れていました。私は完全性のためにここに含めています。 ORDER BYを追加して、SalesID値をまとめてグループ化しました。 ORDER BYは、上記のCTEにも役立ちます。
SELECT *
FROM AXDelNotesNoTracking
WHERE SalesID IN
( SELECT SalesID
FROM AXDelNotesNoTracking
GROUP BY SalesID
HAVING COUNT(*) > 1
)
ORDER BY SalesID
はこれを試してみてください。
select salesid,count (salesid) from AXDelNotesNoTracking group by salesid having count (salesid) >1
-1これは、元の質問が要求しているので、複数回現れるレコードのみを識別するためのHAVING句がありません。 –
彼は1つ以上のレコードを見るだけで、それをチェックしたいとは言及していませんでした。 –
質問は次のように書いています: "データが特定の列に複数回出現するかどうかを確認したい。 HAVING節がなければ、すべての値が返されます。テーブルが大きい場合は、複数回表示される値を見つけるのが難しくなります。 –
方法について:SQLの
select salesid from AXDelNotesNoTracking group by salesid having count(*) > 1;
何様々な? MySQL? Microsoft SQL Server?オラクル?アクセス?等 – UnhandledExcepSean