SQL 刷题/【京东】查询每位顾客最近一笔订单
上一题下一题中等通过率 67%

【京东】查询每位顾客最近一笔订单

WHERE 条件JOIN 连接子查询窗口函数ORDER BY用户行为分析面试真题

题目描述

来源:京东 SQL 面试真题

某电商平台使用订单表和顾客表存储交易信息。现在需要使用窗口函数和表联结,查询每位有下单记录的顾客最近一笔订单。

数据表

orders 订单表

字段类型说明
order_idBIGINT订单编号,主键
customer_idBIGINT顾客 ID
order_dateDATETIME下单时间

customers 顾客表

字段类型说明
customer_idBIGINT顾客 ID,主键
customer_nameVARCHAR顾客名称

最近订单口径

  • 在每位顾客自己的订单中,按 order_date 降序选取最近一笔。
  • 同一顾客多笔订单的下单时间完全相同时,取 order_id 更大的订单。
  • 没有下单记录的顾客不输出。

题目要求

  • 必须使用窗口函数和表联结。
  • 输出订单编号、顾客名称和最近下单日期。
  • 最终按 customer_id 升序展示。

期望输出列

列名说明
order_id最近一笔订单的编号
customer_name顾客名称
order_date最近下单时间

数据样例

当前运行环境
order_idPKBIGINTcustomer_idBIGINTorder_dateDATETIME
11012023-07-01 10:00:00
21022023-07-02 11:30:00
31012023-07-03 15:45:00
41032023-07-04 09:20:00
51022023-07-05 14:10:00
输入数据显示 5 / 5
SQL 编辑器正在保存草稿...
正在加载 SQL 编辑器...

运行你的 SQL 查询后,结果将显示在这里