DW_SQL集合运算

3 篇文章 0 订阅

DW_SQL集合运算
关于UNION
1、union
UNION 等集合运算符通常都会除去重复的记录.
UNION 的去重相当于set. 不仅会去掉两个结果集重复的,还会去掉一个结果集中重复的行。

2、union all
在union的结果中保留重复行。

3、union可以兼容不同的类型
4、两个表做差集
利用谓词 not in

差集,补集与表的减法
A-B = A-A∩B
!!!MySQL 8.0 还不⽀持 表的减法运算符 EXCEPT,但是可以用NOT IN 实现类似的功能(在A不在B中)。

连接
结合 GROUP BY 子句使用内连结
结合 GROUP BY 子句使用内连结, 需要根据分组列位于哪个表区别对待.

最简单的情形, 是在内连结之前就使用 GROUP BY 子句.

但是如果分组列和被聚合的列不在同一张表, 且二者都未被用于连结两张表, 则只能先连结, 再聚合.

外连结(OUTER JOIN)
内连结会丢弃两张表中不满足 ON 条件的行,和内连结相对的就是外连结. 外连结会根据外连结的种类有选择地保留无法匹配到的行.

按照保留的行位于哪张表,外连结有三种形式: 左连结, 右连结和全外连结.

左连结会保存左表中无法按照 ON 子句匹配到的行, 此时对应右表的行均为缺失值; 右连结则会保存右表中无法按照 ON 子句匹配到的行, 此时对应左表的行均为缺失值; 而全外连结则会同时保存两个表中无法按照 ON子句匹配到的行, 相应的另一张表中的行用缺失值填充.

三种外连结的对应语法分别为:

FROM <TABLE1> LEFT OUTER JOIN <TABLE2> ON <CONDITIONS>
FROM <TANLE1> RIGHT OUTER JOIN <TABLE2> ON <CONDITIONS>
FROM <TABLE1> FULL OUTER JOIN <TABLE2> ON <CONDITIONS>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值