03 2020 档案
摘要:公共表表达式(CTEs)是一个命名的临时结果集。CTE不作为对象存储,仅在查询执行期间持续。 有时我们在处理一些复杂查询的时候,需要把查询内容一步步分解,最后计算出想要的结果。因此我们需要保存这些中间数据,但是计算出最后结果之后这些数据就没用了,因此我们需要把这些中间计算过程保存在一个临时的结果集里
阅读全文
摘要:topN问题是SQL面试里经常考的一个问题,即如何取每组最大的N条记录。 这里摘取leetcode上的一道题,因为主要为了说明如何选取topN的记录,因此这里删掉了第二张表(不需要进行两表连接)。 题目:根据Employee表中的信息,找出每个部门工资前三高的员工信息(部门号,姓名,工资) | Id
阅读全文
摘要:分页实际上就是从结果集中截取当前所需要展示的那部分内容。 为什么需要进行分页查询?当使用SELECT查询时,如果结果集数据量很大,比如有上万条记录,一次性查询所有结果会变得很慢,因此需要使用分页查询。 分页查询的几种方式: 1,限定+偏移(LIMIT ... OFFSET ...) 首先确定每页需要
阅读全文
摘要:针对相同的表进行的连接被称为“自连接”(self join)。 那么为什么要把相同的一张表连接起来呢?一开始还是挺难理解的。把它想象成连接两张不同的表,这样容易理解一些。事实上,自连接还是有很多用处的。 自连接的用途: 1,在同一张表内进行比较 例子:查找收入超过各自经理的员工的姓名 Id | Na
阅读全文
摘要:关联子查询和普通子查询的区别在于:1,关联子查询引用了外部查询的列。 2,执行顺序不同。对于普通子查询,先执行普通子查询,再执行外层查询;而对于关联子查询,先执行外层查询,然后对所有通过过滤条件的记录执行内层查询。 语法: SELECT column1, column2 FROM table1 AS
阅读全文
摘要:CASE表达式是用来判断条件的,条件成立时返回某个值,条件不成立时返回另一个值。 语法: CASE WHEN ComparsionCondition THEN result WHEN ComparsionCondition THEN result ELSE other END (注:各分支返回的数据
阅读全文
摘要:在大多数编程语言中,代码是按照编码顺序执行的,但是在SQL语言中,尽管SELECT语句第一个出现,但却不是第一个被执行的。 SQL查询语句内部执行顺序: from子句 >where子句 >group by子句 >聚合函数 >having子句 >select 字段 >order by子句 每个执行步骤
阅读全文
摘要:窗口可以理解为记录集合,窗口函数就是在满足某种条件的记录集合上执行的特殊函数。窗口函数也称为OLAP函数,OLAP即实时分析处理(Online Analytical Processing)。 语法: window_function (expression) OVER ( [ PARTITION BY
阅读全文
摘要:我们用训练集训练出一个初步的模型后,并不能直接使用该模型,而是要对该模型进行诊断,并不断对模型进行调整。 现以普林斯顿大学教授工资数据集为例,来说一下如何对模型进行诊断和对结果进行解读。数据集下载地址:http://data.princeton.edu/wws509/datasets/salary.
阅读全文