sql - 返回 Toad 中的最新行
问题描述
所以我有一个在 Toad 中看起来像这样的数据框:
ID Total_Amt date1 date2 Name1 Name2
1 16 11/1/12 6/30/12 BOB JON
1 17 11/1/13 7/12/13 BILL JACK
1 17 11/1/13 7/1/13 BEN ADA
1 18 11/1/14 11/5/14 JEFF ALAN
1 18 11/1/14 11/1/14 JERI FRANK
我的目标是只返回每个 date1 的最新行。因为我只有一排 11/1/12 那将是我最近的。但是对于 date1 中的 11/1/13,有两行具有相同的日期。因此,我想查看 date2 并说好吧,我最近的日期是 7/12/13,所以我只想返回该行而不是两者。
我得到的数据框如下:
ID Total_Amt date1 date2 Name1 Name2
1 16 11/1/12 6/30/12 BOB JON
1 17 11/1/13 7/12/13 BILL JACK
1 18 11/1/14 11/5/14 JEFF ALAN
我只关心与每个日期有关的最新行,所以如果 date1 中有多个日期具有相同的日期,那么我希望它仅通过使用 date2 并查看什么是最新的该字段中 date1 中找到的日期的最新日期。
解决方案
使用row_number()
窗口函数
select ID ,Total_Amt,date1,date2,Name1,Name2 from
(
select ID ,Total_Amt,date1,date2,Name1,Name2,
row_number() over(order by date1 desc,date2 desc) rn from table_name
) t where rn=1
推荐阅读
- angular - Ionic Cordova 应用程序无法在 android 9 设备上运行
- python - 从一列字符串中提取整数
- key - 如何使用字典理解从已知值中获取密钥
- spring - 在 Spring 上对 ajax 请求无响应的正确方法
- powershell - 在 PowerShell 中组合带有空格的路径以及变量和参数
- python - 在出现字符串时过滤数据框内容
- amazon-web-services - 有没有办法比较两个 AWS 账户的实际服务限制?
- android - RelativeLayout 中的两个 TextView 对 rtl 语言环境有正确的响应
- translation - 在 Kentico Cloud 中获取要翻译的字符数
- c++ - 将 lambda 传递给 c++ 中另一个类中的方法