如何提取查询中对应Dealer最大交易日期的全量表记录详情
提取每个经销商(Dealer)最大交易日期全量记录方案
以下是两种可直接落地的SQL实现方式:
方案一:窗口函数实现(优先推荐)
性能更好,可灵活适配单条/多条最大日期记录返回需求:
WITH 排序后交易表 AS ( SELECT *, -- 按经销商分组,交易日期倒序排序 ROW_NUMBER() OVER (PARTITION BY Dealer ORDER BY 交易日期字段 DESC) AS 排序序号 -- 若同一经销商最大日期有多条记录都要返回,把上面的ROW_NUMBER()换成RANK()即可 ) SELECT * FROM 排序后交易表 WHERE 排序序号 = 1;
方案二:子查询关联实现(兼容性更强)
适配不支持窗口函数的低版本数据库场景:
SELECT 原表.* FROM 你的交易表名 原表 INNER JOIN ( -- 先查询每个经销商的最大交易日期 SELECT Dealer, MAX(交易日期字段) AS 最大交易日期 FROM 你的交易表名 GROUP BY Dealer ) 最大日期映射表 ON 原表.Dealer = 最大日期映射表.Dealer AND 原表.交易日期字段 = 最大日期映射表.最大交易日期;
提示:使用时请将代码中的
你的交易表名、交易日期字段替换为你实际使用的表名和对应交易日期的字段名称即可。
内容的提问来源于stack exchange,提问作者Narendra Suryawanshi
相关产品推荐
相关产品推荐

