category
type
status
date
slug
summary
tags
password
Property
Mar 17, 2023 03:25 PM
icon
  • 窗口函数
    • notion image
notion image
  • with as 进行模块化脚本编写

    求连续区间的决解方法

    用RANK() 或 ROW_NUMBER 都行,sql如下:
    这一步对应结果如下:
    可见reference相同的log_id都是连续的,加上rn字段是为了便于理解,实际不需要。 所以下一步按reference求最大和最小log_id就好了。

    排名函数

    1. rank() over 作用:查出指定条件后的进行排名,条件相同排名相同,排名间断不连续。 说明:例如学生排名,使用这个函数,成绩相同的两名是并列,下一位同学空出所占的名次。即:1 1 3 4 5 5 7
    1. dense_rank() over 作用:查出指定条件后的进行排名,条件相同排名相同,排名间断连续。 说明:和rank() over 的作用相同,区别在于dense_rank() over 排名是密集连续的。例如学生排名,使用这个函数,成绩相同的两名是并列,下一位同学接着下一个名次。即:1 1 2 3 4 5 5 6
    1. row_number() over 作用:查出指定条件后的进行排名,条件相同排名也不相同,排名不间断连续。 说明:这个函数不需要考虑是否并列,即使根据条件查询出来的数值相同也会进行连续排序。即:1 2 3 4 5 6

    统计字符个数

    1. char_length(str) 计算单位:字符
      1. 不管是汉字还是数字或者是字母都算是一个字符
    1. length(str)
      1. 计算单位:字节
        utf8编码:一个汉字三个字节,一个数字或字母一个字节
        gbk编码:一个汉字两个字节,一个数字或字母一个字节
    MySQL 45讲笔记MySQL的事务隔离机制
    • Twikoo
    • Giscus