Я работаю со списком пациентов больницы и хотел бы пометить каждую учетную запись пациента знаком "Y", если они были в больнице девять или более раз за последние 12 месяцев.
Я придумал это, которое бы работало нормально, если бы список пациентов был статичным и включал бы только 12-месячный период:
SELECT
ENC.HSP_ACCOUNT_ID,
ENC.PAT_MRN_ID,
ENC.ADT_ARRIVAL_DTTM,
case when count(distinct txn.hsp_account_id) over(partition by PAT.PAT_MRN_ID) >= 9 then 'Y' else 'N' end as familiar_face_yn
FROM CLARITY.F_ED_ENCOUNTERS ENC
WHERE ENC.SERVICE_DATE BETWEEN '1-JUL-17' AND '31-OCT-18'
Но я бы хотел запросить предыдущийданные за два года, но используйте только 12 месяцев до даты прибытия (ENC.ADT_ARRIVAL_DTTM) при вычислении Y или N.
Проблема, с которой я сталкиваюсь с вышеупомянутым запросом, состоит в том, что он собираетсяназад и подсчет всех посещений конкретного пациента в период с 1 июля 1997 года по 10 января 31 года.
Мне бы хотелось, чтобы дата прибытия записи была 18.08.18следует считать все посещения с 8/1/17 по 8/1/18, игнорируя что-либо с датой прибытия ранее, чем 8/1/17 или позже, чем 8/1/18.
Является ли это "прокатный "расчет возможен?Большое спасибо!