业务场景:需要在表中查询日期最大所在的行中利率的值。

场景复现:

先制造临时表数据:

WITH bond_yield AS(
SELECT 1 id, '20201012' tradedate , 'a' bond,2.95 yield FROM dual UNION ALLSELECT 2 id, '20201013' tradedate , 'a' bond,2.85 yield FROM dual UNION ALLSELECT 3 id, '20201014' tradedate , 'a' bond,2.91 yield FROM dual UNION ALLSELECT 4 id, '20201015' tradedate , 'a' bond,2.77 yield FROM dual UNION ALLSELECT 5 id, '20201012' tradedate , 'b' bond,2.32 yield FROM dual UNION ALLSELECT 6 id, '20201013' tradedate , 'b' bond,2.35 yield FROM dual UNION ALLSELECT 7 id, '20201014' tradedate , 'b' bond,2.67 yield FROM dual UNION ALLSELECT 8 id, '20201015' tradedate , 'b' bond,2.39 yield FROM dual
)select * from bond_yield

现在要查询日期最大且bond为a的利率的值


SELECT w.bond, MAX(w.yield) KEEP(DENSE_RANK last ORDER BY w.tradedate) yield FROM bond_yield w where w.bond='a' group by bond;

关键字解释:

KEEP

keep的意思就是“保持”,会保持满足括号内条件的记录,用ORDER BY 后自然会有FIRST和LAST了。

DENSE_RANK

DENSE_RANK是排序策略。例如,它会将两个第二名排在第一名之后,之后还是第三名排在第二名之后。

FIRST/LAST

FIRST/LAST就是对数据进行筛选了。这里我们筛选tradedate最大的记录。如果日期是一样的。就需要使用MAX()选取最大的值。

SQL 分析函数之KEEP相关推荐

  1. DLA SQL分析函数:SQL语句审计与分析的利器

    1. 简介 Data Lake Analytics(https://www.aliyun.com/product/datalakeanalytics)最新release一组SQL内置函数,用来进行SQ ...

  2. Oracle之SQL分析函数

    这个做统计分析的时候就用的比较多了,咱们来看一下ORACLE的分析函数,就是OVER函数,OVER PARTITION BYOVER PARTITION BY ORDER BY,还有row_numbe ...

  3. Hive SQL 分析函数

    本文首发于:大数据每日哔哔-Hive 分析函数 Hive 分析函数 应用场景 (1)用于分区排序<br />(2)Top N<br />(3)层次查询 <a name=& ...

  4. 数仓开发5大SQL分析函数

    基本语法 analytic_function_name([argument_list]) OVER ( [PARTITION BY partition_expression,-] [ORDER BY ...

  5. 数仓开发需要了解的5大SQL分析函数

    公众号『大数据技术与数仓』,回复『资料』领取大数据资料包 基本语法 analytic_function_name([argument_list]) OVER ( [PARTITION BY parti ...

  6. mysql sql总计函数_请问select SQL 语言中常用的合计函数有哪些?

    1.sql中sum和count的区别 ----sql聚合函数 (1)首先,sum是对一个字段求和,hive中字段的类型一般是string或者是int,如果是int当然没有问题,如果是string类型但 ...

  7. Oracal回顾--分析函数总结(1)

    从事大数据数仓相关工作几年,今天偶然回去复习了 一下oracle的sql分析函数(hive中有些区别,后续还会总结),发现之前总结的还是有不少精华部分,故作此记录,以提醒自己要温故而知新,方可进步,否 ...

  8. 创建和准备Oracle样例数据库

    一 创建Oracle样例数据库 此处有一个Oracle创建数据库和表和插入数据的脚本: http://www.forta.com/books/0672336073/ 亦可在此下载: http://pa ...

  9. MongoDB 5.0新特性概览

    简介:MongoDB 5.0标志着一个新的发布周期的到来,以更快地交付新特性给到用户.版本化API与在线重新分片相结合,使用户不必担心未来的数据库升级以及业务变化问题:本地原生时间序列数据平台也使Mo ...

最新文章

  1. python函数参数理解
  2. dede调用sql语句的方法
  3. python搭建简单http文件服务器
  4. 基于SMB协议的共享文件读写 博客分类: Java
  5. TP查询数据库多维数组
  6. 【定时任务】JDK java.util.Timer定时器的实现原理
  7. oracle不能访问管理页面,Oracle Grid Control CONSOLE无法打开9i数据库的管理维护页面...
  8. Python爬虫批量下载糗事百科段子,怀念的天王盖地虎,小鸡炖蘑菇...
  9. python 连接Oracle数据库,cx_Oracle
  10. 【云周刊】第200期:云栖专辑 | 阿里开发者们的第6个感悟:享受折磨
  11. JavaScript模块知识理解
  12. 4、RH850 F1 定时器OSTM功能和配置
  13. 今日,立秋。秋季养生篇。
  14. 用Xbrowser连接CentOS
  15. 在delphi 获取特殊目录 SHGetSpecialFolderLocation SHGetPathFromIDList
  16. 关于云音乐数据治理的实践与思考
  17. 3D模型:免费3D模型下载网站推荐
  18. 1.python网页设计,点击按键显示对话窗口
  19. Hello World小程序笔记
  20. 记一次阿里电话面试| 技术征文

热门文章

  1. 火星特约 | Uniswap的UNI对DEX格局的影响
  2. jquery前端简单分页_如何使用jQuery创建简单的分页
  3. Python的异步编程介绍
  4. e5cz温控表中文说明书_欧姆龙温控器e5cz说明书 OMRON温控表E5EC说明书
  5. Java 中 字符串 1234 怎么转成 int?
  6. WINDOWS 系统自定义编程 键盘
  7. Day005 - 循环练习与列表基础
  8. 最好的体育测试软件,体育锻炼标准测试app
  9. 一本书读懂财报 | 资产负债表剖析
  10. dede php,织梦(Dedecms){dede:php}{/dede:php}如何运用