查找下了 最多订单 的客户的 customer_number。
建表插入数据:
Create table If Not Exists orders (order_number int, customer_number int)
Truncate table orders
insert into orders (order_number, customer_number) values ('1', '1')
insert into orders (order_number, customer_number) values ('2', '2')
insert into orders (order_number, customer_number) values ('3', '3')
insert into orders (order_number, customer_number) values ('4', '3')
思路分析:
查找下了最多订单的客户,需要计算一下每个客户的下单数量,需要用到聚合函数+窗口函数,通过customer_number进行分组;接着子查询,查询下单最多的customer_number,将下单数量进行降序排序,limit 1取第一个即为下单最多的顾客。
画图分析:
代码实现:
select customer_number from
(select *,count(customer_number) over(partition by customer_number ) count1 from orders) a
order by count1 desc limit 1;