0
2016-01-01から最初に'E'
という診断を受けた人のリストを選択したいと思います。postgresql最小値から日付を選択してください
patients E.. 2013,2014,2016, 2017
(Eが含まれています。.. 2016年に私はそれらを参照してください)
私が欲しいのは、人々を排除することです:
私のコードは、私が手
SELECT DISTINCT ON(form25.visit.patient_id)
form25.visit.patient_id,
CONCAT(demographics.party.firstname,' ', demographics.party.lastname) AS pacientas,
form25.visit.disease_code,
demographics.party.code,
form25.visit.date,
form25.diagnose.disease_type
FROM form25.visit
JOIN demographics.party
ON form25.visit.patient_id = demographics.party.id
JOIN form25.diagnose
ON form25.visit.patient_id = form25.diagnose.card_id
WHERE form25.visit.disease_code LIKE 'E%'
AND form25.diagnose.disease_type = '+'
AND form25.visit.date >= '2016-01-01'
ORDER BY form25.visit.patient_id, form25.visit.date ASC
結果のように見えます2016年より前にE..
の日付があり、2016年から初めてだった人のみが表示されます。
私の記録のためです。どのようになります。 'AND NOT EXISTS( \tが \tどこform25.visit.date = v1.visit.dateとv1.visit.date <= '2015年12月31日' form25.visit V1から1 \tを選択) ' パフォーマンスに関して、ソリューションと比較しますか? –