ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

leetcode刷题之mysql精彩集锦

2021-04-13 21:05:50  阅读:124  来源: 互联网

标签:返回 函数 记录 over value 分组 集锦 mysql leetcode


1 MYSQL8窗口函数

窗口函数与聚合函数很像,他们都是在一组记录而不是整张表上执行的。但是,一个聚合函数在一组记录执行后只返回一条结果而窗口函却会对改分组内的每行记录都返回一个结果。

函数名	参数	描述
cume_dist()	否	累计分布值。即分组值小于等于当前值的行数与分组总行数的比值。取值范围为(0,1]。
dense_rank()	否	不间断的组内排序。使用这个函数时,可以出现1,1,2,2这种形式的分组。
first_value()	是;first_value(expr)	返回分组内截止当前行的第一个值。
lag()	是;lag(expr,[N,[default]])	从当前行开始往前取第N行,如果N缺失默认为1。若没有没有,则默认返回default。default默认值为NULL
last_value()	是;last_value(expr)	返回分组内截止当前行的最后一个值。
lead()	是;lead(expr,[N,[default]])	从当前行开始往后取第N行。函数功能与lag()相反,其余与lag()相同。
nth_value()	是;nth_value(expr,N)	返回分组内截止当前行的第N行。first_value\last_value\nth_value函数功能相似,只是返回分组内截止当前行的不同行号的数据。
ntile()	是;ntile(N)	返回当前行在分组内的分桶号。在计算时要先将改分组内的所有数据划分成N个桶,之后返回每个记录所在的分桶号。返回范围从1到N
percent_rank()	否	累计百分比。该函数的计算结果为:小于该条记录值的所有记录的行数/该分组的总行数-1. 所以改记录的返回值为[0,1]
rank()	否	间断的组内排序。其排序结果可能出现如下结果:1,1,3,4,4,6
row_number()	否	当前行在其分组内的序号。不管其排序结果中是否出现重复值,其排序结果都为:1,2,3,4,5

over子句

over子句可以指定如何将记录划分分区以供窗口函数处理。如果over()为空,则是将整个查询记录作为一个分组。如果over子句不为空,则其可以指定查询记录划分分组的方式以及记录在分组内部的排序方式。除此之外,over子句也可以和聚合函数一起用

标签:返回,函数,记录,over,value,分组,集锦,mysql,leetcode
来源: https://www.cnblogs.com/albertXe/p/14655225.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有