如何在sql中引用日期进行计数

如何在sql中引用日期进行计数,sql,oracle,datetime,window-functions,Sql,Oracle,Datetime,Window Functions,我有如下表格 product customer surrender_date rank A a 2020/5/1 2 B a 2020/6/1 1 C b 2019/7/1 3 D b 2020/8/1 2 E b 2020/9/1 1 表格 pro

我有如下表格

product   customer  surrender_date  rank
A            a       2020/5/1        2
B            a       2020/6/1        1
C            b       2019/7/1        3
D            b       2020/8/1        2
E            b       2020/9/1        1
表格

product   customer  surrender_date
A            a       2020/5/1
B            a       2020/6/1
C            b       2019/7/1
D            b       2020/8/1
E            b       2020/9/1
首先,我想通过
客户

product   customer  surrender_date
A            a       2020/5/1
B            a       2020/6/1   
其次,我想通过从
最新的
日期中重新查找
投降日期
来对
进行排序

我期望的结果如下

product   customer  surrender_date  rank
A            a       2020/5/1        2
B            a       2020/6/1        1
因此,我的全部期望结果如下

product   customer  surrender_date  rank
A            a       2020/5/1        2
B            a       2020/6/1        1
C            b       2019/7/1        3
D            b       2020/8/1        2
E            b       2020/9/1        1
有没有办法做到这一点


由于我从未提及日期,如果有人有意见,请告诉我。

您可以使用窗口功能:

select
    t.*,
    row_number() over(partition by customer order by surrender_date desc) rnk
from mytable
注:

  • 我不明白这个问题与聚合有什么关系

  • 根据您处理领带的方式,您可能会寻找
    rank()
    densite\u rank()
    而不是
    row\u number()