sql--集合操作函数--中篇

  • 集合函数
  • 聚合函数
  • 高级聚合函数--GROUPING
  • 窗口函数

集合函数: 对象为结果集,对多个结果集进行范围筛选
增减操作有

并集:UNION /UNIPON ALL :后者显示重复项

-- 被select 的元素必须同时存在两个表中
SELECT  * from tes UNION all SELECT * from test;

交集:mysql不支持INTERSECT

#全集合法:
SELECT * FROM (SELECT  *  FROM tes union all SELECT  *  FROM test) as a group   by id,code having count(*)>1;

结果:


image.png

差集: mysql不支持EXCEPT,官方使用NOT IN,仅支持单字段,性能差过万数据易宕机

NOT IN 语法:


sql--集合操作函数--中篇_第1张图片
image.png
#多字段NOT IN:
select * from tes where not exists ( select * from test where tes.id=test.id and tes.code=test.code);

结果:


sql--集合操作函数--中篇_第2张图片
image.png
#性能问题:左链接查询
select id FROM usertable LEFT JOIN (select id as i from blog) as t1 ON usertable.id=t1.i where t1.i IS NULL


聚合函数:

  1. AVG 返回指定组中的平均值,空值被忽略。
  2. COUNT 返回指定组中项目的数量。
  3. MAX 返回指定数据的最大值。
  4. MIN 返回指定数据的最小值。
  5. SUM 返回指定数据的和,只能用于数字列,空值被忽略。

  1. COUNT_BIG 返回指定组中的项目数量,与COUNT函数不同的是COUNT_BIG返回bigint值,而COUNT返回的是int值。
  2. GROUPING 产生一个附加的列,当用CUBE或ROLLUP运算符添加行时,输出值为1.当所添加的行不是由CUBE或ROLLUP产生时,输出值为0.
  3. BINARY_CHECKSUM 返回对表中的行或表达式列表计算的二进制校验值,用于检测表中行的更改。
  4. CHECKSUM_AGG 返回指定数据的校验值,空值被忽略。
  5. CHECKSUM 返回在表的行上或在表达式列表上计算的校验值,用于生成哈希索引。
  6. STDEV 返回给定表达式中所有值的统计标准偏差。
  7. STDEVP 返回给定表达式中的所有值的填充统计标准偏差。
  8. VAR 返回给定表达式中所有值的统计方差。
  9. VARP 返回给定表达式中所有值的填充的统计方差。

你可能感兴趣的:(sql--集合操作函数--中篇)