letcode 1532. The Most Recent Three Orders

问题:
the most recent 3 orders of each user
Table: Customers

+---------------+---------+
| Column Name   | Type    |
+---------------+---------+
| customer_id   | int     |
| name          | varchar |
+---------------+---------+
customer_id is the primary key for this table.
This table contains information about customers.

Table: Orders

+---------------+---------+
| Column Name   | Type    |
+---------------+---------+
| order_id      | int     |
| order_date    | date    |
| customer_id   | int     |
| cost          | int     |
+---------------+---------+
order_id is the primary key for this table.
This table contains information about the orders made by customer_id.
Each customer has one order per day.
--https://leetcode.cn/problems/the-most-recent-three-orders/
drop table if EXISTS Customers;
drop table if EXISTS Orders;
Create table If Not Exists Customers (customer_id int, name varchar(255));
Create table If Not Exists Orders (order_id int, order_date date, customer_id int, cost int);


insert into Customers values (1,'Winston');
insert into Customers values (2,'Jonathan');
insert into Customers values (3,'Annabelle');
insert into Customers values (4,'Marwan');
insert into Customers values (5,'Khaled');

insert into Orders values  (1,'2020-07-31',1,30);
insert into Orders values  (2,'2020-07-30',2,40);
insert into Orders values  (3,'2020-07-31',3,70);
insert into Orders values  (4,'2020-07-29',4,100);
insert into Orders values  (5,'2020-06-10',1,1010);
insert into Orders values  (6,'2020-08-01',2,102);
insert into Orders values  (7,'2020-08-01',3,111);
insert into Orders values  (8,'2020-08-03',1,99);
insert into Orders values  (9,'2020-08-07',2,32);
insert into Orders values  (10,'2020-07-15',1,2);

select * from Customers;
select * from Orders;
select name customer_name ,customer_id,order_id,order_date
from (
select  name ,o.customer_id,order_id,order_date ,rank()over(partition by o.customer_id order by order_date desc) rk
from Orders o left join Customers c
on o.customer_id=c.customer_id
)t1
where rk <=3
order by customer_name ,customer_id,order_date desc
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值