11

myTableと の2 つのフィールドを持つテーブルがIDありpatientIDます。テーブルには、同じ患者 ID が異なる ID で複数回存在する可能性があります。ONEすべてのインスタンスのみを確実に取得するにはどうすればよいpatientIDですか。

編集:これが完璧な設計ではないことはわかっていますが、今日データベースから情報を取得して、後で修正する必要があります。

4

4 に答える 4

32

CTEwithROW_NUMBER関数を使用できます。

WITH CTE AS(
    SELECT myTable.*
    , RN = ROW_NUMBER()OVER(PARTITION BY patientID ORDER BY ID)
    FROM myTable 
)
SELECT * FROM CTE
WHERE RN = 1
于 2012-06-16T14:58:41.750 に答える
4

あなたが探しているように聞こえますDISTINCT

SELECT DISTINCT patientID FROM myTable

で同じ「効果」を得ることができますGROUP BY

SELECT patientID FROM myTable GROUP BY patientID
于 2012-06-16T14:56:48.303 に答える
0

LIMIT 1簡単な方法は、クエリの最後に追加することです。これにより、結果セットで 1 行だけが返されるようになります。

于 2012-06-16T14:55:46.820 に答える