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

请求编写SQL查询:找出可装入10号纸箱的最大体积订单

解决方案

要实现找出能装入10号纸箱的最大体积订单的需求,我们可以通过分步计算+筛选的方式完成,以下是完整的SQL查询及说明:

完整SQL代码

WITH carton_limit AS (
    -- 计算10号纸箱的最大容纳体积
    SELECT len * width * height AS max_available_volume
    FROM carton
    WHERE carton_id = 10
),
order_calculations AS (
    -- 统计每个订单的总商品体积:单商品体积×购买数量,按订单汇总
    SELECT 
        oi.order_id,
        SUM(p.len * p.width * p.height * oi.product_quantity) AS total_order_volume
    FROM order_items oi
    INNER JOIN product p ON oi.product_id = p.product_id
    GROUP BY oi.order_id
)
-- 筛选出体积符合纸箱容纳要求的订单,取其中体积最大的一条
SELECT order_id, total_order_volume
FROM order_calculations, carton_limit
WHERE total_order_volume <= max_available_volume
ORDER BY total_order_volume DESC
LIMIT 1;

代码说明

  1. carton_limit 公共表表达式:单独计算10号纸箱的体积,作为后续判断订单能否装入的阈值。
  2. order_calculations 公共表表达式:关联订单表和商品表,计算每个订单中所有商品的总体积(单个商品的长×宽×高,再乘以购买数量,最后按订单求和)。
  3. 最终查询:将订单总体积与纸箱体积对比,只保留能装入的订单,按体积从大到小排序后取第一条,得到符合要求的最大体积订单。

如果你的数据库更推荐显式JOIN语法,也可以把最终查询改写为:

SELECT oc.order_id, oc.total_order_volume
FROM order_calculations oc
JOIN carton_limit cl ON oc.total_order_volume <= cl.max_available_volume
ORDER BY oc.total_order_volume DESC
LIMIT 1;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 12:04:55