sql—获取表中每个重复值的最大计数,并将其链接到另一个值

rqqzpn5f  于 2021-08-09  发布在  Java
关注(0)|答案(1)|浏览(272)

请帮我弄清楚:
假设我们有一家餐厅,有3种不同的菜单

A
B
C

在另一个表中,我们有客户名称,订单日期,订单号
例子:

Jack, A, May 22
Jack, A, May 23
Ryan, A, May 23
Emily, B May 24
Jack, A May 25
Emily, B, May 25
Ryan B, May 26
Hannah, C, May 28
Jack, C, May 28
Emily C, May 29
Hannah C, May 30

我想知道哪位顾客对每一个菜单项的计数最高,这个计数是多少
输出示例

Order .... Customer....Count
A Jack  3
B  Emily 2
C Hannah 2

什么样的sql查询语句(oracle)可以得到这样的结果?

9udxz4iz

9udxz4iz1#

可以使用聚合和窗口函数:

select co.*
from (select customer, ord, count(*) as cnt,
             row_number() over (partition by ord order by count(*) desc) as seqnum
      from t
      group by customer, ord
     ) co
where seqnum = 1;

相关问题