使用 MAX 时检索其他列
Retrieving other columns when using MAX
我有一个名为 CEV_CLM_EV
的 table,用于保存事件的状态。我想尝试提取 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
和 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
如果我没看错,您想要特定 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 进行连接以获取其余的关联数据。
我有一个名为 CEV_CLM_EV
的 table,用于保存事件的状态。我想尝试提取 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
和 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
如果我没看错,您想要特定 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 进行连接以获取其余的关联数据。