我有这个查询,它返回几乎相同的两列,除了两列看起来像这样:
条目 1:LOTNUM = TAOM7U034N,操作码 = 8385,DATEADDED = 2015-09-04 05:19:00,DATERELEASED = 2015-09-09 15:41:00
条目 2:LOTNUM = TAOM7U034N,操作码 = 8385,DATEADDED = 2015-09-28 16:51:00,DATERELEASED = 2015-10-01 14:34:00
SELECT
LOTNUM,
OPCODE,
DATERELEASED
FROM
HOURLY_FT_WIP.CACHE_IRAC_HOLD_LOTS AS i
WHERE
LOTNUM IN('TAOM7U034N')
AND DATEADDED =(
SELECT
MAX(DATEADDED)
FROM
HOURLY_FT_WIP.CACHE_IRAC_HOLD_LOTS x
WHERE
x.LOTNUM = i.LOTNUM
AND x.OPCODE = i.OPCODE
)
这个查询没问题,返回第二个条目,这就是我所需要的。但这个查询需要 15 秒。
我尝试修改为:
SELECT
LOTNUM,
OPCODE,
DATERELEASED
FROM
HOURLY_FT_WIP.CACHE_IRAC_HOLD_LOTS AS i
WHERE
LOTNUM IN('TAOM7U034N')
GROUP BY LOTNUM, OPCODE
这个要快得多,大约 0.05 秒。但是,这会返回较旧日期的第一个条目。我需要第二个条目的最新日期。
最佳答案
如果您同意选择中包含另一个字段,您可以尝试类似的操作。
SELECT
LOTNUM,
OPCODE,
DATERELEASED,
MAX(DATEADDED)
FROM
HOURLY_FT_WIP.CACHE_IRAC_HOLD_LOTS AS i
WHERE
LOTNUM IN('TAOM7U034N')
关于mysql - 如何选择mysql中两个条目之间的最新日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33028506/