You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL多表条件查询需求:统计订单总数与销售总额

MySQL查询:统计订单总数与对应销售总额

需求说明

编写单条MySQL查询语句,完成两个统计目标:

  • 获取订单总数,别名为Number_Of_Order
  • 计算所有订单的销售总额,别名为Total_Sales_Amount,核心规则是根据订单的Sales_type匹配对应价格:
    • Sales_type为Normal时,使用Normal_Price计算
    • Sales_type为Promo时,使用Promotion_Price计算

涉及数据表

Orders表

Order_IDSales_type
10Normal
12Promo
13Normal
14Promo
15Normal
16Promo

Orders_Products表

Order_Product_IDOrder_IDNormal_PricePromotion_Price
100105025
1011210080
102126050
103134020
104145025
105154030
10615300250
10716150100
108167560

解决方案SQL语句

SELECT
    COUNT(DISTINCT o.Order_ID) AS Number_Of_Order,
    SUM(
        CASE
            WHEN o.Sales_type = 'Normal' THEN op.Normal_Price
            WHEN o.Sales_type = 'Promo' THEN op.Promotion_Price
            ELSE 0
        END
    ) AS Total_Sales_Amount
FROM Orders o
JOIN Orders_Products op ON o.Order_ID = op.Order_ID;

逻辑说明

  1. 表关联:通过Order_ID关联Orders与Orders_Products,确保每个订单项匹配对应订单的销售类型
  2. 订单总数统计:用COUNT(DISTINCT o.Order_ID)避免重复统计同一订单(单个订单可能对应多个订单项)
  3. 总额计算:通过CASE条件分支,根据销售类型选择对应价格字段求和,保证价格计算规则准确

预期查询结果

Number_Of_OrderTotal_Sales_Amount
6805

(计算明细:Normal订单总额=50+40+40+300=430;Promo订单总额=80+50+25+100+60=315;总计430+315=805)

内容的提问来源于stack exchange,提问作者Unknown Kid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 07:40:33