如何在mysql中选择两个条目之间的最新日期

时间:2015-10-09 01:28:55

标签: mysql

我有这个查询,这会返回几乎相同的两列,除了两列,它们看起来像这样:

条目1:LOTNUM = TAOM7U034N,OPCODE = 8385,DATEADDED = 2015-09-04 05:19:00,DATERELEASED = 2015-09-09 15:41:00

条目2:LOTNUM = TAOM7U034N,OPCODE = 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秒快得多。但是,这将返回第一个条目,即旧日期。我需要最新的日期,这是第二个条目。

1 个答案:

答案 0 :(得分:1)

如果您对选择中包含的其他字段感到满意,您可以尝试这样的事情。

SELECT
    LOTNUM,
    OPCODE,
    DATERELEASED,
    MAX(DATEADDED)
FROM
    HOURLY_FT_WIP.CACHE_IRAC_HOLD_LOTS AS i
WHERE
    LOTNUM IN('TAOM7U034N')