在这个问题上寻求帮助。
我有一个表是驱动程序信息列表,我需要选择具有max report_date值的行。此外,驱动程序可以在每个report_date中多次出现,因此我需要不同的驱动程序。
我如何查询?
答案 0 :(得分:1)
这将获得每个驱动程序的行(或行),其中包含每个驱动程序的最新报告日期。
SELECT *
FROM (
SELECT di.*,
DENSE_RANK() OVER ( PARTITION BY driver ORDER BY report_date DESC ) AS rnk
FROM driver_information di
)
WHERE rnk = 1;
如果您只希望每个驱动程序使用一行(而不是每个驱动程序的所有行都具有最新日期),请将DENSE_RANK
更改为ROW_NUMBER
。
如果您只想要那些最新日期的行,那么您可以删除PARTITION BY driver
子句。
答案 1 :(得分:0)
类似的东西:
select distinct driver
from mytable
where report_date = (select max(report_date) from mytable);