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

基于连续三日数值递增条件查询mytable数据的技术需求

筛选连续三日数值逐日递增的记录

嘿,我来帮你搞定这个连续三日数值递增的筛选问题!我们可以用SQL的窗口函数轻松实现这个需求,具体步骤如下:

最终可用的SQL语句

SELECT name, date, value
FROM (
    SELECT 
        name,
        date,
        value,
        -- 拿到同一品牌前一天的数值
        LAG(value, 1) OVER (PARTITION BY name ORDER BY date) AS prev_day_val,
        -- 拿到同一品牌前两天的数值
        LAG(value, 2) OVER (PARTITION BY name ORDER BY date) AS two_days_ago_val
    FROM mytable
) AS daily_values
WHERE value > prev_day_val 
  AND prev_day_val > two_days_ago_val;

运行结果

结合你给出的mytable数据,执行上面的SQL后,只会返回符合条件的记录:

name | date       | value
-----|------------|------
bmw  | 2018-01-03 | 3000

简单解释下逻辑

  • PARTITION BY name:把数据按品牌分组,这样我们只对比同一个品牌的日期数据,不会搞混不同品牌的数值。
  • ORDER BY date:确保每个分组内的日期是按顺序排列的,这样LAG()函数才能正确拿到前一天和前两天的数值。
  • 子查询先计算出每个记录对应的昨日、前日数值,外层查询直接用条件当日数值>昨日数值且昨日数值>前日数值过滤出目标记录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:10:41