SQL面试现有一个商品订单表

现有一个商品订单表,字段为: id int 自增主键 cust_id string 用户id product_id string 商品id order_id string 订单id order_day string 订单日期,日期格式 cnt int 购买产品件数 amount float 购买产品金额 要求:输出每个用户最后一次购买距今天数(今天是2022年12月21日)

可以使用以下查询语句:

WITH latest_order_day AS (
    SELECT cust_id, MAX(order_day) as latest_order_day
    FROM orders
    GROUP BY cust_id
)
SELECT 
    cust_id, 
    DATEDIFF(NOW(), latest_order_day) AS days_since_last_order
FROM latest_order_day

这个语句会使用 WITH 子句来定义一个名为 latest_order_day 的临时视图,该视图会显示每个用户的最新订单日期。

然后再使用这个视图并使用 DATEDIFF 函数来计算自从最新订单以来多少天。

注意需要根据实际环境来调整上面的语句,例如数据库名,表名等。
仅供参考,望采纳,谢谢。