题解 | 下单复盘

下单复盘

https://www.nowcoder.com/practice/85cece6c8e11434783e9e18da2bddd45

SELECT
    c.customer_id,
    c.customer_name,
    IFNULL(COUNT(DISTINCT o.order_id), 0) AS feb_2024_order_count,
    ROUND(IFNULL(SUM(oi.qty * oi.price), 0) ,2)AS feb_2024_total_amount, 
    ROUND(
        IFNULL(
            SUM(oi.qty * oi.price) / NULLIF(COUNT(DISTINCT o.order_id), 0),
            0
        ),
        2
    ) AS feb_2024_avg_order_amount, 
    MIN(o.order_date) AS feb_2024_first_order_date,
    MAX(o.order_date) AS feb_2024_last_order_date
FROM
    customers c
    LEFT JOIN orders o ON c.customer_id = o.customer_id
    AND o.order_date BETWEEN '2024-02-01' AND '2024-02-29' 
    LEFT JOIN order_items oi ON o.order_id = oi.order_id
GROUP BY
    c.customer_id,
    c.customer_name
ORDER BY
feb_2024_total_amount DESC,customer_id ASC;

全部评论

相关推荐

脑袋锈住了:你这算啥,哥们中科院中强所硕士,本科211,叫我去干分拣,时薪20
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务