前言
- 總結(jié)刷leetcode和面試相關(guān)sql題目的一些常見的函數(shù),容易搞混的一些概念
常見函數(shù)
1. 排名相關(guān) 窗口函數(shù)
面試中考排名相關(guān)的sql題目,就是想考以下函數(shù)之間的區(qū)別
row_number():行號,同薪不同名
rank():同薪同名枕屉,會跳級啤咽。如:1 2 2 4
dense_rank():同薪同名,不會跳級穿稳。如:1 2 2 3
快手數(shù)據(jù)分析面試中遇到rank()和dense_rank()的區(qū)別的sql題目
2. 窗口函數(shù)中表示范圍的關(guān)鍵詞
以下表示范圍的關(guān)鍵詞,在over中
rows between (unbounded preceding-對當(dāng)前行前面范圍不作限制)晌坤, (1 preceding-前1行)逢艘, (current row-當(dāng)前行)旦袋,and (unbounded following-對當(dāng)前行的后面范圍不作限制), (current row-當(dāng)前行),1 following-后1行
在leetcode:1204. 最后一個能進入電梯的人就會用到該關(guān)鍵詞
對于sum它改,count的聚合函數(shù)中疤孕,如何缺省rows between ... and的關(guān)鍵詞時 默認為rows between unbounded preceding and unbounded following。 這個概念非常容易忘記
3. 日期操作函數(shù)
date_sub: date_sub(date, interval xx type),type:day, week, year, month, 等等
date_add:同date_sub
date_diff: 計算兩個日期之間的interval的個數(shù)央拖,如果interval=day就是計算兩個日期之間的天數(shù)
date_format: date類型日期格式化祭阀,比如date類型取年-月類型,可以為date_format(date, '%Y-%m')等