看到很多人对于keep不理解,这里解释一下!

Returns the row ranked first using DENSE_RANK
2种取值:
DENSE_RANK FIRST
DENSE_RANK LAST

keep (DENSE_RANK first ORDER BY sl) 结果集中再取max、min的例子。

SQL> select * from test;

ID MC SL
-------------------- -------------------- -------------------
1 111 1
1 222 1
1 333 2
1 555 3
1 666 3
2 111 1
2 222 1
2 333 2
2 555 2

9 rows selected

SQL> 
SQL> select id,mc,sl,
2 min(mc) keep (DENSE_RANK first ORDER BY sl) over(partition by id),
3 max(mc) keep (DENSE_RANK last ORDER BY sl) over(partition by id)
4 from test
5 ;

ID MC SL MIN(MC)KEEP(DENSE_RANKFIRSTORD MAX(MC)KEEP(DENSE_RANKLASTORDE
-------------------- -------------------- ------------------- ------------------------------ ------------------------------
1 111 1 111 666
1 222 1 111 666
1 333 2 111 666
1 555 3 111 666
1 666 3 111 666
2 111 1 111 555
2 222 1 111 555
2 333 2 111 555
2 555 2 111 555

9 rows selected

SQL>

不要混淆keep内(firstlast)外(min、max或者其他):
min是可以对应last
max是可以对应first

SQL> select id,mc,sl,
2 min(mc) keep (DENSE_RANK first ORDER BY sl) over(partition by id),
3 max(mc) keep (DENSE_RANK first ORDER BY sl) over(partition by id),
4 min(mc) keep (DENSE_RANK last ORDER BY sl) over(partition by id),
5 max(mc) keep (DENSE_RANK last ORDER BY sl) over(partition by id)
6 from test
7 ;

ID MC SL MIN(MC)KEEP(DENSE_RANKFIRSTORD MAX(MC)KEEP(DENSE_RANKFIRSTORD MIN(MC)KEEP(DENSE_RANKLASTORDEMAX(MC)KEEP(DENSE_RANKLASTORDE
-------------------- -------------------- ------------------- ------------------------------ ------------------------------ ------------------------------ ------------------------------
1 111 1 111 222 555 666
1 222 1 111 222 555 666
1 333 2 111 222 555 666
1 555 3 111 222 555 666
1 666 3 111 222 555 666
2 111 1 111 222 333 555
2 222 1 111 222 333 555
2 333 2 111 222 333 555
2 555 2 111 222 333 555

9 rows selected

SQL> select id,mc,sl,
2 min(mc) keep (DENSE_RANK first ORDER BY sl) over(partition by id),
3 max(mc) keep (DENSE_RANK first ORDER BY sl) over(partition by id),
4 min(mc) keep (DENSE_RANK last ORDER BY sl) over(partition by id),
5 max(mc) keep (DENSE_RANK last ORDER BY sl) over(partition by id)
6 from test

转载于:https://www.cnblogs.com/wlzhang/p/5054890.html

oracle 窗口函数 (keep)相关推荐

  1. oracle窗口累计函数,oracle 窗口函数 (keep)

    看到很多人对于keep不理解,这里解释一下! Returns the row ranked first using DENSE_RANK 2种取值: DENSE_RANK FIRST DENSE_RA ...

  2. oracle 窗口函数查询条件,62.Oracle数据库SQL开发之 高级查询——使用分析函数之窗口函数...

    62.Oracle数据库SQL开发之 高级查询--使用分析函数之窗口函数 窗口函数可以计算一定的记录范围内.一定值域内.或者一段时间内的累积和以及移动平均值.查询返回一组记录,称为结果集.窗口这个术语 ...

  3. Oracle窗口函数和分析函数

    一.前言描述: 分析函数带有一个开窗函数over(),包含三个分析子句:分组(partition by), 排序(order by),窗口(rows) ,他们的使用形式如下:分析函数名(参数) ove ...

  4. oracle程序窗口,oracle窗口函数的使用

    窗口函数可以计算一定 记录范围内.一定值域内.或者一段时间内的累计和以及移动平均值等等.之所以使用窗口这个术语,是因为对结果的处理使用了一个滑动的查询结果集范围. 窗口可以与下面这些函数结合使用:su ...

  5. oracle 窗口函数over

    select *,sum(字段) over()from table :--相加所有行这个字段的和 select max(字段1),over(partition by  字段2,字段3) from ta ...

  6. Mysql数据库基本操作(八-2)窗口函数

    MySQL 8.0新增窗口函数,窗口函数又被称为开窗函数,与Oracle窗口函数类似,属于MySQL的一大特点.首先介绍所有窗口函数的用法,然后分块来分别介绍各个窗口函数的作用. 用法: window ...

  7. MySQL六种窗口函数用法案例

    Java和大数据系列 注:大家觉得博客好的话,别忘了点赞收藏呀,本人每周都会更新关于人工智能和大数据相关的内容,内容多为原创,Python Java Scala SQL 代码,CV NLP 推荐系统等 ...

  8. 案例分享|国内某大行澳门分行数据平台案例

    项目背景 澳门某分行原先采用Oracle数据搭建其大数据平台,经过多年使用,现在Oracle已经不能支撑其不断发展的业务.随着数据量上升,现在的大数据库平台数据清洗时间过长,日报经常需要T+2才能展示 ...

  9. MySQL基础--函数

    文章目录 MySQL函数 1 聚合函数 **1.1 group_concat()函数** 2 数学函数 3 字符串函数 4 日期函数 5 控制流函数 6 窗口函数 6.1 序号函数 6.2 开窗聚合函 ...

最新文章

  1. Android移动开发之【Android实战项目】DAY9-LineChart的使用
  2. c# winform实现2048游戏
  3. 在iis中让asp.net的错误显示在远程访问电脑中
  4. 回溯算法的题目,这样做,秒杀!!
  5. iphone自定义铃声
  6. Linux Shell 常用命令与目录分区的学习总结
  7. 离线CSDN网页打开跳转首页的解决方法
  8. QT二次开发Kvaser
  9. 《嵌入式 - 语音识别TWen-ASR-ONE开发笔记》第5章 TWen-ASR-ONE 串口使用
  10. 简述人工智能发展的先决条件
  11. 535A: Tavas and Nafas
  12. 路由器的配置+telnet
  13. esxi能直通的显卡型号_七彩虹RTX SUPER祝融(火神)版显卡上手体验
  14. 双屏 3840 * 1080 如何装逼?不同的屏幕显示不同的壁纸。php 定时脚本下载必应每日壁纸。
  15. 怎么做表情包微信gif?好用的制作方法介绍
  16. Jmeter 压测工具
  17. mybatis批量入库(springboot mybatis 批量入库)
  18. hihoCoder - 1353 满减优惠
  19. spark-ml和jpmml-sparkml生成pmml模型过程种遇到的问题
  20. QQ快捷登录需要在 AndroidManifest.xml 注册添加如下信息,sdk中提供开始配置少了回调的配置,报错

热门文章

  1. spring 事务隔离级别和传播行为_Spring事务传播性与隔离性实战
  2. mysql 经典入门教程_MySQL 经典入门教程
  3. 414. 第三大的数
  4. java js highcharts_Highcharts.js -纯javasctipt图表库初体验
  5. 160 - 2 Afkayas.1
  6. leetcode 106. 从中序与后序遍历序列构造二叉树 105. 从前序与中序遍历序列构造二叉树思考分析
  7. 【C++ grammar】C++简化内存模型
  8. md5模式 签名_MD的完整形式是什么?
  9. css设置a连接禁用样式_使用CSS禁用链接
  10. scanf读取字符_在C语言中使用scanf()读取整数时跳过字符