sqlserver开窗及去重row_number() over(partition by c1 order by c2)

sqlserver开窗及去重row_number() over(partition by c1 order by c2)开窗函数 分析函数 over 开窗函数也叫分析函数 有两类 一类是聚合开窗函数 一类是排序开窗函数 开窗函数的语法为 over partition by 列名 1 order by 列名 2 括号中的两个关键词 partition by 和

欢迎大家来到IT世界,在知识的湖畔探索吧!

sqlserver开窗及去重row_number() over(partition by c1 order by c2)



欢迎大家来到IT世界,在知识的湖畔探索吧!

开窗函数/分析函数:over()

开窗函数也叫分析函数,有两类:一类是聚合开窗函数,一类是排序开窗函数。

开窗函数的语法为:over(partition by 列名1 order by 列名2 ),括号中的两个关键词partition by 和order by 可以只出现一个。over() 前面是一个函数,如果是聚合函数,那么order by 不能一起使用。

开窗函数不需要使用GROUP BY就可以对数据进行分组,还可以同时返回基础行的列和聚合列。over里头的分组及排序的执行晚于“where,group by,order by”的执行。

1、排名开窗函数

PARTITION BY用于将结果集进行分组,开窗函数应用于每一组。 ORDER BY 指定排名开窗函数的顺序,在排名开窗函数中必须使用ORDER BY语句。

(1) row_number() over():对相等的值不进行区分,相等的值对应的排名相同,序号从1到n连续。

(2) rank() over():相等的值排名相同,但若有相等的值,则序号从1到n不连续。如果有两个人都排在第3名,则没有第4名。

(3) dense_rank() over():对相等的值排名相同,但序号从1到n连续。如果有两个人都排在第一名,则排在第2名(假设仅有1个第二名)的人是第3个人。

SQL SERVER 查询去重 PARTITION BY

rownumber() over(partition by col1 order by col2)

表示根据COL1分组,在分组内部根据 COL2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的),WHERE RN= 1;取第一条数据

  SELECT * FROM (SELECT *, ROW_NUMBER() OVER( PARTITION BY 单位名称 ORDER BY 单位名称 )RN  FROM [dbo].[jg]) T WHERE RN= 1;

欢迎大家来到IT世界,在知识的湖畔探索吧!

2、聚合开窗函数

很多聚合函数都可以用作窗口函数的运算,如SUM、AVG、MAX、MIN、COUNT。 聚合开窗函数只能使用PARTITION BY子句,ORDER BY不能与聚合开窗函数一同使用。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/94625.html

(0)
上一篇 2天前
下一篇 2天前

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信