我有一个名为CEV_CLM_EV
的表,其中包含事件的状态。我想尝试提取MAX
事件,但我想在查询中的其他地方使用CEV_TYPE
。以下是提取所有内容的查询:
SELECT
CEV_CLM_ID,
CEV_TYPE,
CEV_ADD_TS
FROM
CEV_CLM_EV
WHERE
CEV_CLM_ID = 403083306;
结果:
CEV_CLM_ID CEV_TYPE CEV_ADD_TS
----------- -------- --------------------------
403083306 O 2015-03-11-10.03.51.412566
403083306 O 2015-03-11-10.04.27.102384
403083306 DN 2015-03-11-10.04.27.733790
如果我去MAX(CEV_ADD_TS)
,我需要只分组无效的CEV_CLM_ID
。但如果我按CEV_CLM_ID
AND CEV_TYPE
分组,我会得到重复的内容,如:
SELECT
CEV_CLM_ID,
CEV_TYPE,
MAX(CEV_ADD_TS)
FROM
CEV_CLM_EV
WHERE
CEV_CLM_ID = 403083306
GROUP BY
CEV_CLM_ID,
CEV_TYPE
结果:
CEV_CLM_ID CEV_TYPE 3
----------- -------- --------------------------
403083306 DN 2015-03-11-10.04.27.733790
403083306 O 2015-03-11-10.04.27.102384
答案 0 :(得分:0)
如果我正确读取,您需要特定cev_clm_id的最大日期时间,并获得与最大日期时间匹配的关联cev_type吗?
如果是这样,那么你不能用简单的查询来做到这一点:
SELECT *
FROM CEV_CLM_EV AS source
LEFT JOIN (
SELECT CEV_CLM_ID, MAX(CEV_ADD_TS) AS timestamp
FROM CEV_CLM_EV
GROUP BY CEV_CLM_ID
) AS maxes ON
(source.CEV_CLM_ID = maxes.CEV_CLM_ID )
AND (source.CEV_ADD_TD = maxes.timestamp)
子查询获取最大时间戳及其关联的ID,然后外部查询连接该时间戳和id以获取其余的关联数据。