myTable
と の2 つのフィールドを持つテーブルがID
ありpatientID
ます。テーブルには、同じ患者 ID が異なる ID で複数回存在する可能性があります。ONE
すべてのインスタンスのみを確実に取得するにはどうすればよいpatientID
ですか。
編集:これが完璧な設計ではないことはわかっていますが、今日データベースから情報を取得して、後で修正する必要があります。
myTable
と の2 つのフィールドを持つテーブルがID
ありpatientID
ます。テーブルには、同じ患者 ID が異なる ID で複数回存在する可能性があります。ONE
すべてのインスタンスのみを確実に取得するにはどうすればよいpatientID
ですか。
編集:これが完璧な設計ではないことはわかっていますが、今日データベースから情報を取得して、後で修正する必要があります。
CTE
withROW_NUMBER
関数を使用できます。
WITH CTE AS(
SELECT myTable.*
, RN = ROW_NUMBER()OVER(PARTITION BY patientID ORDER BY ID)
FROM myTable
)
SELECT * FROM CTE
WHERE RN = 1
あなたが探しているように聞こえますDISTINCT
:
SELECT DISTINCT patientID FROM myTable
で同じ「効果」を得ることができますGROUP BY
:
SELECT patientID FROM myTable GROUP BY patientID
LIMIT 1
簡単な方法は、クエリの最後に追加することです。これにより、結果セットで 1 行だけが返されるようになります。