1. join和inner join的差別
join= inner join= cross join(都可以使用ON過濾)
left join=left outer join:左外連接配接
right join=right outer join:右外連接配接
full join=full outer join:全外連接配接(mysql不支援UNION代替)
natural join: 自然連接配接(不能使用ON)
2.join using用法
using()用于兩張表的join查詢,要求using()指定的列在兩個表中均存在,并使用之用于join的條件。
示例:
select a.*, b.* from a left join b using(colA);
// 等同于:
select a.*, b.* from a left join b
on a.colA = b.colA;
3.視窗函數
https://blog.csdn.net/nmsLLCSDN/article/details/123287490
這篇寫的很詳細
常用的視窗函數:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnLwcjM2EGMlN2MhBDNjhTNhZjNyQTZzADM4ImZwcTNjFzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
視窗函數的文法結構:
函數 OVER ([PARTITION BY 字段名 ORDER BY 字段名 ASC|DESC])
或者是 函數 OVER 視窗名 … WInDOW 視窗名 AS ([PARTITION BY 字段名 ORDER BY 字段名 ASC|DESC])
OVER 關鍵字指定視窗的範圍;
- 如果省略後面括号中的内容,則視窗會包含滿足WHERE條件的所有記錄,視窗函數會基于所有滿足WHERE條件的記錄進行計算。
- 如果OVER關鍵字後面的括号不為空,則可以使用如下文法設定視窗。
- PARTITION BY 子句: 指定視窗函數按照哪些字段進行分組, 分組後, 視窗函數可以在每個分組中分别執行;
- ORDER BY 子句: 指定視窗函數按照哪些字段進行排序, 執行排序操作使視窗函數按照排序後的資料記錄的順序進行編号;
- FRAME 子句: 為分區中的某個子集定義規則, 可以用來作為滑動視窗使用;