SQL查询语句(group by向

本文解析了SQL查询的基本构造,包括从两张表的笛卡尔积开始,通过WHERE条件筛选,GROUP BY后的数据聚合,再到HAVING对群组的条件判断。重点讲解了如何利用GROUP BY和HAVING操作实现数据的高效整理和筛选。
摘要由CSDN通过智能技术生成

SELECT [DISTINCT] target-list
FROM relation-list
WHERE qualification
GROUP BY grouping-list
HAVING group-qualification

一个完整的查询语句包含以上5个部分

执行顺序

  1. from中的两张表做笛卡尔乘积,成为一条条元组(or记录)的集合
  2. 根据where语句对1的集合进行筛选,删除不符合限定的元组
  3. 根据group by的特征,将2留下来的元组进行合并(grouping-list中的特征要相同),成为一个个元组group的集合
  4. having语句对3留下来的group进行条件判断,删去不符的group
  5. 将group递交给select语句的一个个结果项,形成一条条记录

限制与补充说明

  • group by 相当于将share共同特征值的记录合并(“捏”)在一起,成为group。没写group时,这个合并特征是相当于无限多的,也就没办法捏
  • 在递交给select时,实际上是对保留下来的group进行一个单行的输出。这就决定了,select的值,如果是特征的话,必须是group特征表的子集(同group的都相同),或者是那些对group的操作的聚集函数(like Avg Max Count),总之,让每个group只对应一行输出
  • having 跟select是类似的,因为它与select同样是操作group的,只不过having是对group的筛选,select是对group的一个"总结"。having语句中的条件,一定是group列表里的特征,或者是聚集函数

在这里插入图片描述

品,你细品~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值