У меня есть таблица под названием «история» с некоторыми примерами данных ниже:
SITE_ID TARGET_PRIMARY_KEY TARGET_TABLE UPDATED_AT USER_ID
1 1025test 4 2018/10/25 12:01 e4
1 1025test 4 2018/10/25 12:02 e1
1 1025test 4 2018/10/25 12:03 e2
1 1025test 4 2018/10/25 12:04 e3
1 aaa 4 2018/10/19 15:01 e1
5 aaa 7 2018/10/19 15:02 e2
1 aaa 4 2018/10/19 15:03 e3
1 aaa 4 2018/10/19 15:04 e4
1 aaa 4 2018/10/19 15:05 e5
1 aaa 4 2018/10/19 15:06 e6
Чего я хочу добиться: для каждой уникальной комбинации "SITE_ID"
и "TARGET_PRIMARY_KEY"
выберите запись, которая имеет наибольшее (последнее) значение "UPDATED_AT"
а также убедитесь, что соответствующий "USER_ID"
правильный.
Ожидаемый результат:
1 1025test 4 2018/10/25 12:04 e3
1 aaa 4 2018/10/19 15:06 e6
Я пробовал следующий sql:
SELECT
hist.SITE_ID AS siteId,
TARGET_PRIMARY_KEY AS skey,
hist.TARGET_TABLE AS targetTable,
MAX(UPDATED_AT) AS lastActionDate,
hist.USER_ID
FROM
history AS hist
WHERE
hist.TARGET_TABLE = 4
AND hist.SITE_ID = 1
GROUP BY TARGET_PRIMARY_KEY
Однако информация "USER_ID"
, похоже, не синхронизирована с "UPDATED_AT"
, который я получил:
1 1025test 4 2018/10/25 12:04 e4
Может кто-нибудь дать мне совет?Спасибо.