我有一张table,就像:
| 身份证|账户|日期|金额|
| - -----|- -----|- -----|- -----|
| 1. |ad@ind| 2022年11月7日|三五四|
| 2. |ad@ind| 2022年11月10日|五八六|
我需要找到记录,其中是最大的月份数,并获得金额在这个日期。怎么办?最大(日期)不适合,我需要在月份内的数字。
我试着按日期和金额分组,我试着做内部查询,但不是很幸运。
我有一张table,就像:
| 身份证|账户|日期|金额|
| - -----|- -----|- -----|- -----|
| 1. |ad@ind| 2022年11月7日|三五四|
| 2. |ad@ind| 2022年11月10日|五八六|
我需要找到记录,其中是最大的月份数,并获得金额在这个日期。怎么办?最大(日期)不适合,我需要在月份内的数字。
我试着按日期和金额分组,我试着做内部查询,但不是很幸运。
1条答案
按热度按时间rkttyhzu1#
假设你想要每个月的记录,那么考虑使用窗口函数
ROW_NUMBER()
的以下解决方案:此
ROW_NUMBER()
窗口函数功能为共享相同月份和年份的每行生成一个row_number,从1开始,按date
列降序排序。获取rn
的1
的记录是该月/年组合的最高日期。使用与我在评论中分享的类似的逻辑,这可能会更慢,因为需要两次表扫描: