返回最大日期和与该最大日期关联的 id 的 SQL 语句

问题描述 投票:0回答:4

我想编写一个返回整个表的最大日期的查询。但是,我想返回该最大日期的一些关联记录/列。例如,与该最大日期关联的 ID。

桌子:

帐号 约会 产品
123123 2004-01-01 衬衫
145236 2006-07-01 裤子
123156 2008-01-11 衬衫
145347 2014-01-01 衬衫

我想返回整个表的最大日期以及标识 ID 记录。这样我就知道哪个记录返回了最大日期以及最大日期。

这是我尝试过的: 从 db2.table t1 中选择 t1.account_number、max_date join (select account_number, max(date) as max_date from db2.table group by id) t2 在 t1.account_number= t2.account_number 和 t1.date = t2.max_date

结果: 我为每个带有最大日期的 account_number 返回一行。相反,我期待单行输出:

帐号 约会
145347 2014-01-01
sql db2
4个回答
0
投票
 SELECT X.account_number,X.date FROM
 ( 
   SELECT T.account_number,T.date,
     ROW_NUMBER()OVER(ORDER BY T.DATE DESC)XCOL
     FROM YOUR_TABLE T
 )X WHERE X.XCOL=1

你可以试试上面的 ROW_NUMBER-逻辑


0
投票

以下任何一个都可以工作。

select account_number, date from t1 order by date desc 仅获取第一行

select account_number, max(date) as max_date from t1 group by act_num order by max_date desc 仅获取前 1 行


0
投票

你可以结合

ORDER BY
FECTH NEXT n ROWS ONLY
。例如:

select * from t order by date desc fetch next 1 rows only

-1
投票

如果您只是想查找最近日期的数据行,那么可以使用 LIMIT 函数在对整个表进行降序排序后仅显示最近的条目。

SELECT account_number, date
FROM table
ORDER BY date DESC limit 1;
© www.soinside.com 2019 - 2024. All rights reserved.