用法1:用having语句进行比较找出是否有缺失行
适用情况:数据行存在遗漏,需要找出遗漏数据
案例1:寻找缺失的编号
表seqtbl
比较数量和最大序号找缺失值
案例1.1 找到所有缺失编号的最小值
缺点:此种查询不全,不能覆盖最小缺失编号为1和存在null值的情况,两种情况下会报错
使用序号+1求缺失编号
用法2:用having语句进行子查询求众数
适用情况:平均值无法反应真实情况,数据集出现极大值或者极小值,需要用众数表示
案例:求出出现最多的收入
表graduates
求众数方法1
求众数方法2
用法3:用having语句进行子查询求中位数
适用情况: 平均值无法反应真实情况,数据集出现极大值或者极小值,需要用中位数表示
案例:求出收入的中位数
表graduates
多条件同时满足求中位数
用法4:查询不包含NULL 的集合
适用情况:当涉及到null的计算会更为复杂,需要将null部分排除掉,仅保留不含null的数据集合
案例:找出student表中日期不为null
的学院
区别:count(*)可以计算null的行,count(字段)不能计算null的行
表Student
用法5:关系除法运算
适用情况:需要从连接条件中排除某些条件时
案例:购物篮分析,筛选出商品完全相等的地区
表shopitems
表items
表shopitems与items左连接之后的结果
image.png