Выберите первый экземпляр записи

У меня есть таблица myTable, в которой есть два поля ID и patientID. Один и тот же идентификатор пациента может находиться в таблице более одного раза с другим идентификатором. Как я могу убедиться, что я получаю только ONE экземпляр каждого patientID.?

EDIT: Я знаю, что это не идеальный дизайн, но мне нужно получить информацию из базы данных и сегодня, а затем исправить ее позже.

Ответ 1

Вы можете использовать CTE с функцией ROW_NUMBER:

WITH CTE AS(
    SELECT myTable.*
    , RN = ROW_NUMBER()OVER(PARTITION BY patientID ORDER BY ID)
    FROM myTable 
)
SELECT * FROM CTE
WHERE RN = 1

Ответ 2

Похоже, вы ищете DISTINCT:

SELECT DISTINCT patientID FROM myTable

вы можете получить тот же "эффект" с помощью GROUP BY:

SELECT patientID FROM myTable GROUP BY patientID

Ответ 3

Простым способом было бы добавить LIMIT 1 в конец вашего запроса. Это гарантирует, что в результирующем наборе будет возвращена только одна строка.