SQL进阶-having子句的力量

having子句是SQL中用于集合分析的关键,它可以与groupby、case表达式和自连接结合。以前它必须与groupby一起使用,但现在可独立。where子句检查单个记录,而having则检查分组后的集合属性。例如,count(*)和count(col)在处理null值时有不同作用,可用于特定场景的分析。groupby分组后,having能对每个分组内的元素进行进一步分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SQL进阶-having子句的力量

having子句是理解SQL面向集合这一本质的关键。

在以前的SQL标准里面,having子句必须和group by子句一起使用,但是按照现在的SQL标准,having子句是可以单独使用的

  • 可以与case 表达式或者自连接等结合使用。
  • 表不是文件,记录没有顺序,所以SQL不进行排序。
  • group by子句可以用来生成子集。
  • where子句用来调查集合(表)元素的性质,而having子句用来调查集合本身的性质。

分组后由于某一列可能为null,而聚合函数可以忽略null,所以某些场景下我们可以使用count(*)和count(col)进行比较。

注意点:group by进行分组,但是可以使用having中对组内的每一个元素进行分析。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值