前言
- 总结刷leetcode和面试相关sql题目的一些常见的函数,容易搞混的一些概念
常见函数
1. 排名相关 窗口函数
面试中考排名相关的sql题目,就是想考以下函数之间的区别
row_number():行号,同薪不同名
rank():同薪同名,会跳级。如:1 2 2 4
dense_rank():同薪同名,不会跳级。如:1 2 2 3
快手数据分析面试中遇到rank()和dense_rank()的区别的sql题目
2. 窗口函数中表示范围的关键词
以下表示范围的关键词,在over中
rows between (unbounded preceding-对当前行前面范围不作限制), (1 preceding-前1行), (current row-当前行),and (unbounded following-对当前行的后面范围不作限制), (current row-当前行),1 following-后1行
在leetcode:1204. 最后一个能进入电梯的人就会用到该关键词
对于sum,count的聚合函数中,如何缺省rows between ... and的关键词时 默认为rows between unbounded preceding and unbounded following。 这个概念非常容易忘记
3. 日期操作函数
-
date_sub: date_sub(date, interval xx type),type:day, week, year, month, 等等
-
date_add:同date_sub
-
date_diff: 计算两个日期之间的interval的个数,如果interval=day就是计算两个日期之间的天数
-
date_format: date类型日期格式化,比如date类型取年-月类型,可以为date_format(date, '%Y-%m')等
网友评论