SELECT DISTINCT
cs.file_id,
null,
'lol',
t.encounter_id,
e.pan, e.mr,
e.provider_id,
t.c_date_of_service,
GETDATE(),
ROW_NUMBER() OVER (PARTITION BY e.encounter_id ORDER BY e.encounter_id DESC) row
FROM
encounters e WITH (NOLOCK)
JOIN
dummy ec ON ec.encounter_id = e.encounter_id
JOIN
case_status cs ON cs.case_id = ec.case_id
JOIN
(SELECT DISTINCT
e.encounter_id, c.date_of_service AS c_date_of_service
FROM
encounters e WITH (NOLOCK)
JOIN
dummy ec ON ec.encounter_id = e.encounter_id
JOIN
cases c ON ec.case_id = c.case_id
GROUP BY
e.pid, c.date_of_service, e.encounter_id
HAVING
(COUNT(0) > 1 AND e.pid IS NOT NULL)) AS t ON t.encounter_id = e.encounter_id
WHERE
row = 1
Я получаю сообщение об ошибке
Неверное имя столбца 'строка'
Если я просто удаляю where row = 1
, он отлично работает в SQL Server.
Еще одна вещь - ROW_NUMBER() OVER (PARTITION BY e.encounter_id ORDER BY e.encounter_id DESC)
показывает разные номера строк, RANK() OVER (PARTITION BY e.encounter_id ORDER BY e.encounter_id DESC)
показывает все звания как 1, где в полученных данных есть дубликат encounter_id
.