我有一个数据集,其中包含ID,状态日期(常规)和状态类型。


状态类型为OpenTransferClose
主键是ID和状态日期的组合。所以一个ID会有多个
记录。


我正在尝试选择一个数据子集,其中包含最近状态类型为“打开”或“转移”的日期范围内的ID。

SELECT id,
       status_date,
       Date_format(Str_to_date(status_date, '%Y%j'), '%m/%d/%Y'),
       status_type
FROM   my.TABLE
WHERE  ( ( ( status_type = 'O' )
            OR ( status_type = 'T' ) )
         AND ( status_date <= 2012182 ) )


我应该使用MAX(Status_Date)还是LAST(Status_Date)函数?

最佳答案

LAST不是有效的MySQL函数,因此MAX是适当的函数。您也不需要所有这些括号。

WHERE  ( status_type = 'O'
          OR status_type = 'T' )
       AND status_date <= 2012182


您也可以使用INstatus_type指定列表。

WHERE  status_type IN ('O', 'T')
       AND status_date <= 2012182

关于mysql - 选择日期范围内的最新合格类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15575884/

10-09 00:57
查看更多