sql - SQL如何为这个问题创建一个聚合?
问题描述
我有这张表,里面有 cod、插入日期 (dat_valid_ini) 和标志。仅当标志发生更改并且聚合仅显示最低的 dat_valid_ini 时,我才需要聚合。
我有的桌子:
鳕鱼 | DAT_VALID_INI | FLG |
---|---|---|
1088184 | 1900/01/01 | ○ |
1088184 | 2019/11/03 | 乙 |
1088184 | 2020/02/12 | 乙 |
1088184 | 2020/03/29 | 乙 |
1088184 | 2020/03/31 | 乙 |
1088184 | 2020/06/21 | ○ |
结果我需要的表:
鳕鱼 | DAT_VALID_INI | FLG |
---|---|---|
1088184 | 1900/01/01 | ○ |
1088184 | 2019/11/03 | 乙 |
1088184 | 2020/06/21 | ○ |
解决方案
您似乎希望在更改后第一次出现标志。只需使用lag()
和过滤:
select t.*
from (select t.*,
lag(flg) over (partition by cod order by dat_valid_ini) as prev_flg
from t
) t
where prev_flg is null or prev_flg <> flg;
推荐阅读
- javascript - 我正在使用角度代码调用其余 api 并将其显示在屏幕上
- ios - 无法在 Xcode Storyboard 中调整 UITextField 的大小
- css - 当项目少于列时将 CSS 网格居中
- android - 如何在 Firebase-ui ListVeiw 中实现点击监听器?
- rest - 如何在 QTP 中添加 Oauth Bearer 令牌
- php - 使用 jquery 将图像上传到数据库时,我在 php 中遇到错误,变量中的数据可能没有传递
- corda - 关于corda中附件的详细信息
- linux - 如何设计对 nanomsg 套接字和 tty 或 Netlink 的异步处理?
- c# - 刷新 DataSource Master-Detail XtraGrid
- python - nargs='?' 当两个 pos 参数被一个 opt 参数分割时不起作用,为什么?