更新时间:2026-07-03 GMT+08:00
分享

INTERSECT

功能描述

INTERSECT返回多个查询结果的交集,即同时存在于所有查询结果中的行。INTERSECT默认去除重复行,使用INTERSECT ALL保留重复行。

语法格式

select_statement INTERSECT [ ALL ] select_statement;

参数说明

参数

说明

INTERSECT

集合交运算。返回同时存在于左侧和右侧查询结果中的行。

ALL

加上ALL关键字后保留重复行。不加ALL时默认去除重复行。

注意事项

  • 两个SELECT语句返回的列数必须相同。
  • 对应列的数据类型必须兼容。
  • Spark 4.0支持INTERSECT ALL语法,保留重复行。
  • 多个集合运算(UNION、INTERSECT、EXCEPT)可以通过括号控制优先级。

示例

基本INTERSECT交集(去重):

SELECT * FROM student_1 INTERSECT SELECT * FROM student_2; 

INTERSECT ALL保留重复行(Spark 4.0):

SELECT * FROM student_1 INTERSECT ALL SELECT * FROM student_2; 

使用括号控制优先级(Spark 4.0):

(SELECT * FROM student_1 INTERSECT SELECT * FROM student_2)   UNION SELECT * FROM student_3;

相关文档