聚合函数(如sum()、avg()、max()等等)是针对定义的行集(组)执行聚集,每组只返回一个值。

窗口函数也是针对定义的行集(组)执行聚集,可为每组返回多个值。如既要显示聚集前的数据,又要显示聚集后的数据。

窗口查询有两个步骤:将记录分割成多个分区,然后在各个分区上调用窗口函数。

语法:主要是over( PARTITION BY (根据某条件分组,形成一个小组)….ORDER BY(再组内进行排序) …. )

over:

 over (order by col1)                     --按照 col1 排序, 没分区范围就是整个表over (partition by col1)                 --按照 col1 分区 over (partition by col1 order by col2)   -- 按照 col1 分区,按照 col2 排序--带有窗口范围over (partition by col1 order by col2 ROWS 窗口范围)   -- 在窗口范围内,按照 col1 分区,按照 col2 排序

实例:

-- 按照age排序,每阶段的age数据进行统计求和

select id,age,name, count() over(order by age) from wt1;

结果:

-- 窗口范围是表下按照age进行分区

-- 在分区里面,再按照age进行排序

 select id,age,name, count() over(partition by age order by age) from wt1;

-- 窗口范围是表下按照age进行分区

-- 在分区里面,再按照id进行降序排序

 select id,age,name, count() over(partition by age order by age) from wt1;

序列函数

row_number:会对所有数值,输出不同的序号,序号唯一且连续,如:1、2、3、4、5。

rank:会对相同数值,输出相同的序号,而且下一个序号间断,如:1、1、3、3、5。

dense_rank:会对相同数值,输出相同的序号,但下一个序号不间断,如:1、1、2、2、3。

ROW_NUMBER()

row_number() OVER (PARTITION BY COL1 ORDER BY COL2) 

表示根据COL1分组,在分组内部根据 COL2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)。

表数据:

-- rn_id 按照性别分组,按照id排序

select id,sex,name, row_number() over(partition by sex order by id desc) from student;

--查询student表中按照sex分组,取每组的最小id的记录

select a.* from
(select sex,age,id, row_number() over(partition by sex order by id) as rn from student) a
where a.rn = 1;

over中partition by和distribute by区别:

1)partition by [key..] order by [key..]只能在窗口函数中使用,而distribute by [key...] sort by [key...]在窗口函数和select中都可以使用。

2)窗口函数中两者是没有区别的

3)where后面不能用partition by

Window 函数:

ROWS窗口函数中的行选择器 rows between [n|unbounded preceding]|[n|unbounded following]|[current row] and [n|unbounded preceding]|[n|unbounded following]|[current row]

参数解释:

n行数

unbounded不限行数

preceding在前N行

following在后N行

current row当前行

应用场景:

1)查询当月销售额和近三个月的销售额

2)查询当月销售额和今年年初到当月的销售额

表数据:

实例:

-- 查询当月销售额和近三个月的销售额

SELECT
y,
m,
sales,
sum(sales) OVER(PARTITION BY y ROWS between unbounded preceding and current row) AS s2
FROM sale_table;

pb9数据窗口中显示行数据与当前行区别_Hive的窗口函数相关推荐

  1. mssql sqlserver 禁止删除数据表中指定行数据(转自:http://www.maomao365.com/?p=5323)

    转自:http://www.maomao365.com/?p=5323 摘要: 下文主要讲述,如何禁止删除数据表中指定行数据 最近收到用户一个需求,禁止所有人删除"表A"中,ID ...

  2. python弹窗怎么抓取_在Python中,按POST请求并从弹出窗口中抓取数据

    我想按"Suche starten"按钮,从这个页面上为一个研究项目刮取结果(基本上它可以不填任何表格-然后打开一个弹出窗口,保存我想要的数据).在https://www.inso ...

  3. pb 选择多行数据窗口数据_PB数据窗口中自动换行

    PB数据窗口中自动换行 (2010-12-21 11:53:26) 标签: 杂谈 PowerBuilder的DataWindow报表功能非常强大,当一个字段输入的数据太多时,不能自动换行则看起来数据不 ...

  4. mysql数据库导出模型到powerdesigner,PDM图形窗口中显示数据列的中文注释

    1,mysql数据库导出模型到powerdesigner 2,CRL+Shift+X 3,复制以下内容,执行 '******************************************** ...

  5. pb 如何判断数据窗口中是否有某个字段_怎么判断数据窗口中某个字段存在重复的数据...

    今天写代码的是碰到上面的问题,头都大了,刚开始的时候是把这个列的所以的字段都存储在数组中,拼接成一个字符串,然后对改字符串进行写代码,即使这样要写这样的代码还是有点麻烦的.后来问下了同事,没想到,下面 ...

  6. pb 修改数据窗口种指定字段位置_如何在PB数据窗口中修改数据---设置数据窗口的更新属性...

    如何在 PB 数据窗口中修改数据 --- 设置数据窗口的更新属性 数据窗口对象非常强大的原因之一就是能够很容易地修改数据库.当用户修 改了数据窗口中的数据,插入了新的数据行或者删除了数据行以后,只要调 ...

  7. listview显示mysql数据_C#在listview控件中显示数据库数据

    一.了解listview控件的属性 view:设置为details columns:设置列 items:设置行 1.将listview的view设置为details 2.设置列属性 点击添加,添加一列 ...

  8. pb 数据窗口更新mysql_如何在PB数据窗口中修改数据---设置数据窗口的更新属性...

    如何在PB数据窗口中修改数据 如何在PB数据窗口中修改数据---设置数据窗口的更新属性 数据窗口对象非常强大的原因之一就是能够很容易地修改数据库.当用户修改了数据窗口中的数据,插入了新的数据行或者删除 ...

  9. 4.3 数据表中的行汇总统计

    对数据表中的行进行汇总统计是一项经常性而又非常有用的数据库操作.例如,在销售管理中除了计算销售总额之外,用户可能还需要了解某个代理商的上月销售额.     Access提供了一种新的简便方法(即,汇总 ...

最新文章

  1. python 命令行参数-python中命令行参数
  2. android工程师 腾讯,腾讯音乐Android工程师一面面试题记录,拿走不谢!
  3. 【论文解读】A Survey on Visual Transformer及引文理解
  4. 如何优雅地辞退互联网企业的老员工?
  5. qt5 make 找不到QApplication
  6. IntelliJ IDEA(一、下载,安装与激活)
  7. YYDS!对比学习还能这么用?
  8. java自定义窗口_Java-创建一个自定义窗口,扁平化界面
  9. 学习记录:由技术而产品,由产品而商务
  10. 【Python】基于Python的百度迁徙(2020年10月21日更)
  11. QCC514x-QCC304x(headset)系列(实战篇)之5.1 tone详解
  12. javascript操作div中的marginTop
  13. 什么是软件维护?在软件已经交付使用后,为了改正错误或满足新需求而修改软件的过程。它有哪几种类型?
  14. linux/安卓的spi读写ADS1256出现读写错误
  15. effective java之 builder模式
  16. java 数字转大写_Java把数字转换成中文大写数字
  17. Variable详解
  18. Elasticsearch学习(四) - 查询①
  19. 2022年 清华大学大数据研究中心 | 招募专业实践基地合作单位
  20. Adam优化器简单理解

热门文章

  1. java启动监听器报错_JAVA通过JDBC连接Oracle数据库详解【转载】
  2. k8s mysql重启_kubernetes Pod 应用自动恢复(重启策略 + 健康检查)简介
  3. 怎样把照片中的头像扶正_这些圣诞壁纸也太好看了吧,还能自制圣诞帽头像,换它...
  4. python文本文档_python 文本文件操作
  5. java 开源so库_NDK使用之引用.so开源库
  6. 山东省第十届ACM浪潮杯补题
  7. 计算机的硬盘和光盘数,磁盘与光盘介绍-计算机组成原理与汇编语言-电子发烧友网站...
  8. 『数据库』数据库编程(概念性的东西,应用一般,甚至有点过时,用来考试)
  9. 数学--数论--欧拉降幂和广义欧拉降幂(实用好理解)
  10. 疯子的算法总结(九) 图论中的矩阵应用 Part 2 矩阵树 基尔霍夫矩阵定理 生成树计数 Matrix-Tree