SQL 刷题/【阿里巴巴】查询每个顾客购买的最新产品
上一题下一题中等通过率 100%

【阿里巴巴】查询每个顾客购买的最新产品

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

题目描述

来源:阿里巴巴 SQL 面试真题

某电商平台使用订单表、顾客表和产品表记录交易数据。请查询每个有下单记录的顾客最新购买的产品。

数据表

orders 订单表

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

customers 顾客表

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

products 产品表

字段类型说明
product_idBIGINT产品 ID,主键
product_nameVARCHAR产品名称

最新购买口径

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

题目要求

  • 返回顾客 ID、顾客姓名和最新购买的产品名称。
  • 结果按顾客 ID 升序排列。

期望输出列

列名说明
customer_id顾客 ID
customer_name顾客姓名
product_name最新购买的产品名称

数据样例

当前运行环境
order_idPKBIGINTcustomer_idBIGINTproduct_idBIGINTorder_dateDATETIME
110112023-07-01 10:00:00
210222023-07-02 11:30:00
310132023-07-03 15:45:00
410322023-07-04 09:20:00
510212023-07-05 14:10:00
输入数据显示 5 / 5
SQL 编辑器正在保存草稿...
正在加载 SQL 编辑器...

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