我正在处理一个超过 10 列的表。列名称之一是 ASAT,它的类型为 DATE(格式为yyyy-mm-dd HH:MM:SS:mmm
)。
我正在寻找一个返回最大日期的所有记录的 sql 查询。尝试在 java 中使用该查询进行 JDBC 调用。
我试过这个:
Select * from tablename where ASAT in (select MAX(ASAT) from tablename)
。
但它没有返回任何记录。
非常感谢任何帮助。谢谢
怎么样:
SELECT MAX(Asat) FROM TableA;
SELECT MAX(Asat) FROM TableA GROUP BY Asat;
当您自加入时,我建议为表的每个副本设置别名。我个人之后使用带有数字的表格字母,以防我需要跟踪它以进行更大的查询。
Select *
from tablename t1
where t1.ASAT = (
select MAX(t2.ASAT)
from tablename t2
)
如果我理解你的话,我相信你正在寻找这样的东西。首先构建一个包含主键和 MAX(ASAT) 的 CTE。然后加入它,选择主键与 MAX(ASAT) 行的主键匹配的位置。请注意,您的“ID”可能必须不止一列。
with tbl_max_asat(id, max_asat) as (
select id, max(asat) max_asat
from tablename
group by id
)
select *
from tablename t
join tbl_max_asat tma
on t.id = tma.id;
这篇旧帖子刚刚弹出,因为它是今天编辑的。也许我的回答仍然会对某人有所帮助。:-)