leetcode刷题之mysql精彩集锦
2021/4/14 2:26:55
本文主要是介绍leetcode刷题之mysql精彩集锦,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
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子句也可以和聚合函数一起用
这篇关于leetcode刷题之mysql精彩集锦的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-20部署MySQL集群入门:新手必读指南
- 2024-11-20部署MySQL集群教程:初学者指南
- 2024-11-20部署MySQL集群项目实战:新手教程
- 2024-11-20部署MySQL集群资料:新手入门教程
- 2024-11-20MySQL集群部署教程:入门级详解
- 2024-11-20MySQL集群教程:入门与实践指南
- 2024-11-20部署MySQL集群教程:新手入门指南
- 2024-11-20MySQL读写分离教程:轻松入门
- 2024-11-20部署MySQL集群入门:一步一步搭建你的数据库集群
- 2024-11-19部署MySQL集群学习:入门教程