category
type
status
date
slug
summary
tags
password
Property
Mar 17, 2023 03:25 PM
icon
- 窗口函数


- with as 进行模块化脚本编写
求连续区间的决解方法
用RANK() 或 ROW_NUMBER 都行,sql如下:
这一步对应结果如下:
可见reference相同的log_id都是连续的,加上rn字段是为了便于理解,实际不需要。
所以下一步按reference求最大和最小log_id就好了。
排名函数
- rank() over
作用:查出指定条件后的进行排名,
条件相同排名相同,排名间断不连续
。 说明:例如学生排名,使用这个函数,成绩相同的两名是并列,下一位同学空出所占的名次。即:1 1 3 4 5 5 7
- dense_rank() over
作用:查出指定条件后的进行排名,
条件相同排名相同,排名间断连续
。 说明:和rank() over 的作用相同,区别在于dense_rank() over 排名是密集连续的。例如学生排名,使用这个函数,成绩相同的两名是并列,下一位同学接着下一个名次。即:1 1 2 3 4 5 5 6
- row_number() over 作用:查出指定条件后的进行排名,条件相同排名也不相同,排名不间断连续。 说明:这个函数不需要考虑是否并列,即使根据条件查询出来的数值相同也会进行连续排序。即:1 2 3 4 5 6
统计字符个数
- char_length(str) 计算单位:字符
不管是汉字还是数字或者是字母都算是一个字符
- length(str)
计算单位:字节
utf8编码:一个汉字三个字节,一个数字或字母一个字节
gbk编码:一个汉字两个字节,一个数字或字母一个字节
- 作者:axiszql
- 链接:https://axiszql.com/article/article-130f35adfb72720b45c5e5294abaead6
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。