You need to enable JavaScript to run this app. 编写SQL查询筛选价格递增序列中ID低于历史最小值的记录
优惠活动
大模型
产品
解决方案
定价
更多

编写SQL查询筛选价格递增序列中ID低于历史最小值的记录

SQL查询实现方案

实现思路

先按价格升序排列所有数据集,逐行计算两个前置判定指标:

  • 当前行之前所有记录的最高价格,用于校验「价格高于历史所有价格」的规则
  • 当前行之前所有记录的最小ID,用于校验「当前ID低于历史所有ID最小值」的规则
    排在首位的记录无前置数据,默认满足两项判定条件。

实现代码

WITH sorted_base AS (
    SELECT
        id,
        price,
        -- 取当前行之前所有记录的最高价格
        MAX(price) OVER (
            ORDER BY price 
            ROWS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING
        ) AS prev_highest_price,
        -- 取当前行之前所有记录的最小ID
        MIN(id) OVER (
            ORDER BY price 
            ROWS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING
        ) AS prev_min_id
    FROM 你的业务表名
)
SELECT id, price
FROM sorted_base
WHERE
    -- 满足价格规则:要么是首行,要么当前价格高于此前所有最高值
    (prev_highest_price IS NULL OR price > prev_highest_price)
    -- 满足ID规则:要么是首行,要么当前ID小于此前所有最小ID
    AND (prev_min_id IS NULL OR id < prev_min_id)
ORDER BY price;

注意:需将代码中的「你的业务表名」替换为实际存储id、price数据的表名后再运行

结果验证

使用你提供的测试数据集运行上述SQL,返回结果与预期目标完全匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.28 12:15:04