これにより、重複が存在するすべての行が返されます。 :
SELECT employee_id, leave_date, no_of_days, leave_state
FROM hr_holidays_by_calendar h
WHERE EXISTS (
SELECT -- select list can be empty for EXISTS
FROM hr_holidays_by_calendar
WHERE employee_id = h.employee_id
AND leave_date = h.leave_date
AND leave_state <> 'refuse'
AND ctid <> h.ctid
)
AND leave_state <> 'refuse'
ORDER BY employee_id, leave_date;
leave_state <> 'refuse'
がどこにあるかは不明です 適用する必要があります。要件を定義する必要があります。私の例では、leave_state = 'refuse'
の行を除外しています (およびleave_state IS NULL
それで!)完全に。
ctid
は、非公開(未定義?)の主キーの貧乏人の代理です。
関連: