Получение предыдущих значений записи в виде строк в текущей записи по идентификатору пользователя в MySQL - PullRequest
0 голосов
/ 16 апреля 2019

Я пытаюсь создать набор данных MySQL, в котором есть записи из предыдущего исследования (хирургическое исследование с первым исследованием, имеющим значение 1), а также для этого идентификатора пользователя. Каждый пользователь может пройти несколько исследований. Я пытаюсь использовать функцию отставания, чтобы получить данные предыдущих исследований. Я получаю повторяющиеся значения для исследования 1, пытаясь использовать функцию задержки.


WITH Complete_Data AS (
    SELECT *
    FROM Data
    GROUP BY UserId, studyno
)
SELECT *, LAG(indication_of_failure, 1)
OVER (
        PARTITION BY UserId
        ORDER BY studyno
    ) prev_study_indication_of_failure
    , 
    LAG(BCVA_State,1)
    OVER (
        PARTITION BY UserId
        ORDER BY studyno
    ) prev_study_BCVA
FROM 
    Complete_Data
    GROUP BY UserId, studyno
    ;

Я ожидаю нулевые значения в prev_study_indication_of_failure и prev_study_BCVA, когда Studyno = 1, но заполнены значениями, когда Studyno> = 2.

Из-за повторяющихся записей для studyno = 1 я получаю значения в prev_study_indication_of_failure и prev_study_BCVA


Пример данных

The following image gives the actual data sample

Ожидаемый результат The following image gives the expected outcome

...