专栏名称: 杰西伍卡
公众号:杰西伍卡,长期征稿
目录
相关文章推荐
51好读  ›  专栏  ›  杰西伍卡

SQL学习笔记 - GROUP BY / JOIN / UNION

杰西伍卡  · 简书  ·  · 2020-09-19 18:32

正文

最近在DataCamp上学习SQL(基于PostgreSQL)的课程,本文主要记录自己易记混的点,以便日后参考学习,不做原理讲解。

  1. GROUP BY(分组) 一般和聚合函数一起使用,包括COUNT(),AVG(),MAX(),MIN(),SUM();一般跟在FROM后面;SELECT语句中未出现在聚合函数里的列都要出现在GROUP BY。

2. WHERE/ GROUP BY/ HAVING/ ORDER BY 执行顺序

SELECT __ FROM __ WHERE __ GROUP BY __ (HAVING __) (ORDER BY _ ASC/DESC)

首先,WHERE将最原始记录中不满足条件的记录删除(所以应该在where语句中尽量将不符合条件的记录筛选掉,这样可以减少分组的次数), WHERE语句不能用聚合函数

然后,通过GROUP BY关键字对数据进行分组 ;

接着,根据HAVING关键字后面指定的筛选条件,将分组后不满足条件的记录筛选掉,(HAVING可以用聚合函数,如 HAVING AVG(col) > 10;

最后,按照ORDER BY语句进行排序。

WHER子句在聚合前先筛选记录,也就是说作用在GROUP BY和 HAVING子句前;而HAVING子句在聚合后对组记录进行筛选。

3. JOIN

image

INNER JOIN / JOIN : only includes records in which the key is is both tables.

LEFT JOIN :keeps all of the records in the left table while bringing in missing values for those key field values that don't appear in the right table.

RIGHT JOIN :keeps all of the records in the right table while bringing in missing values for those key field values that don't appear in the left table.







请到「今天看啥」查看全文