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

求可筛选最新成本与历史成本有差异产品的SQL查询语句

解决方案

思路

先给每个产品的订单按日期倒序编号,提取最新和上一笔订单的成本,对比两者是否存在差异,最后关联产品表筛选出目标产品。

SQL 查询语句

WITH RankedOrders AS (
    SELECT 
        order_id,
        cost,
        ROW_NUMBER() OVER (PARTITION BY order_id ORDER BY order_date DESC) AS rn
    FROM 
        "Order"
)
SELECT 
    p.id,
    p.product
FROM 
    Product p
JOIN (
    SELECT 
        ro1.order_id
    FROM 
        RankedOrders ro1
    JOIN RankedOrders ro2 
        ON ro1.order_id = ro2.order_id 
        AND ro1.rn = 1 
        AND ro2.rn = 2
    WHERE 
        ro1.cost != ro2.cost
) diff_products 
    ON p.id = diff_products.order_id
WHERE 
    p.id IN (1, 2);

说明

  • RankedOrders 公共表表达式:按产品(order_id)分组,给每个产品的订单按order_date倒序排名,rn=1代表最新订单,rn=2代表上一笔订单。
  • 差异产品筛选子查询:关联同一产品的最新和上一笔订单,找出成本不同的产品ID。
  • 最终关联查询:关联产品表,仅保留ID为1、2的产品,符合预期结果要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 10:42:16