mysql - 选择日期范围内最新的合格类型

标签 mysql max

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

  • 状态类型为打开传输关闭
  • 主键是 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/

相关文章:

mysql - 如何在 RaspberryPi 上设置 gammu-smsd.service

php - 注册表错误无法显示。输入也无法插入到mysql

sql - 如何通过最多一列获取SQL行,按另一列分组

python - 通过另一列 pandas 找到列组的最大值

mysql - Spring MVC Rest Web服务

选择时 PHP MySQL 语法错误

ruby-on-rails - 在多个具有相同最大值的情况下获取最大值作为数组

r - 选择一个单元格内的最小值或最大值(分隔字符串)

javascript - 写一个函数在javascript中查找数组的最大值/最小值

mysql - delete_all 是否会忽略基于连接表的条件?