我有一个数据集,其中包含ID,状态日期(常规)和状态类型。
状态类型为Open
,Transfer
或Close
主键是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
您也可以使用
IN
为status_type
指定列表。WHERE status_type IN ('O', 'T')
AND status_date <= 2012182
关于mysql - 选择日期范围内的最新合格类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15575884/