第一章 神奇的SQL之自连接
自连接
概述
一般来说,这些连接大都是以不同的表或视图 为对象进行的,但针对相同的表或相同的视图的连接也并没有被禁止。针对相同的表进行的连接被称为“自连接”(self join)。
可重排列、排列、组合
利用自联结删除重复行
排序
窗口函数:1
2
3
4SELECT name, price,
RANK() OVER (ORDER BY price DESC) AS rank_1,
DENSE_RANK() OVER (ORDER BY price DESC) AS rank_2
FROM Products;
本节要点:
自连接经常和非等值连接结合起来使用。
自连接和 GROUP BY 结合使用可以生成递归集合。
将自连接看作不同表之间的连接更容易理解。
应把表看作行的集合,用面向集合的方法来思考。
自连接的性能开销更大,应尽量给用于连接的列建立索引
练习题: