sql - SQL查询如果价格高于并且ID低于之前的ID和价格记录则返回记录
问题描述
当我有类似于以下的数据集时,我在编写 SQL 查询以返回记录时遇到问题:
ID | 价格 |
---|---|
32967 | 39 |
14675 | 40 |
26434 | 41 |
18495 | 42 |
19698 | 43 |
19090 | 44 |
9278 | 45 |
14932 | 46 |
当价格大于之前的价格并且id低于之前的低价记录时,我想返回id和价格。所以我想用上面的数据返回:
ID | 价格 |
---|---|
32967 | 39 |
14675 | 40 |
9278 | 45 |
我真的很感激帮助。我已经到了我的大脑已经关闭的地步,我确定我错过了一些明显的东西。知道什么时候寻求帮助,对吧?
解决方案
如果我理解正确,累积min()
可以满足您的要求:
select t.*
from (select t.*,
min(id) over (order by price rows between unbounded preceding and 1 preceding) as prev_min_id
from t
) t
where prev_min_id is null or id < prev_min_id;
这是一个 db<>fiddle。
推荐阅读
- html - Shopify 上产品块的交替背景颜色?
- youtube - 具有自定义 URL 但 URL 中没有“c/” slug 的 YouTube 频道不会从 channels.list 端点返回 snippet.customUrl 道具
- javascript - 如何使用 VueJS 将 Outlook 消息拖放到浏览器中
- python - urllib.error.HTTPError:HTTP 错误 404:即使 url 存在,使用 pandas 也找不到
- python - 如何在 Python 中遍历 N 级嵌套字典?
- python - 无法访问位于远程服务器中的 jupyter notebook
- ruby-on-rails - 为什么删除代码行会在 simple_form 中产生“nil:NilClass 的未定义方法‘错误’”
- java - PersistenceContext 和 EntityManager nullPointerException
- javascript - (节点:30437)UnhandledPromiseRejectionWarning:错误:回调函数对承诺客户端不可用
- python - 嵌套具有相同迭代次数的循环的最佳方法是什么?