每一题-103(每件商品的最新订单)

题103:

根据下表写一个SQL 语句, 找到每件商品的最新订单(可能有多个),返回的结果以 product_name 升序排列, 如果有排序相同, 再以 product_id 升序排列, 如果还有排序相同, 再以 order_id 升序排列。
在这里插入图片描述

其中:

  • Orders表:order_id 是该表主键,该表包含消费者customer_id产生的订单,不会有商品被相同的用户在一天内下单超过一次;
  • Products表:product_id 是该表主键,该表包含所有商品的信息。

解题思路:
(1)首先红区每个产品对应的最新一天;
(2)把(1)获得的临时表为where子句的参数,进行限制即可;
(3)排序。

select p.product_name, o.product_id, o.order_id, o.order_date
from Products p 
join Orders o on p.product_id = o.product_id
where (o.product_id, o.order_date) in (
    select product_id, max(order_date) order_date
    from Orders
    group by product_id
)
order by p.product_name, o.product_id, o.order_id;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值