首页 > 数据库 >SQL-六(分组与聚合)

SQL-六(分组与聚合)

时间:2022-10-25 22:46:02浏览次数:44  
标签:聚合 SQL 分组 子句 GROUP WHERE HAVING


GROUP BY 子句:将数据分成若干组
 
 GROUP BY 子句中列名/字段名的书写顺序,并不影响最终的分组结果。


分组结果的聚合

PS:1.将一类 行中多条数据 的情况,视作一种错误。
   
     例子:


这样的话虽然是7列4行,但是SQL只会分析其“市场部' 组、'运营部' 组、'设计部' 组 这个 分组 构成的 虚拟表。则分析的就不是4行数据,而是3行数据,即,无意义

 

解决方法:‘聚合函数’ (无论原字段有多少行,结果字段只有一行)

 

中位数的检索:评价各维度表现高低的方法


找中位数 → 对分组统计的结果进行排序(ORDER BY) →  LIMIT 语句(若数据表 orders 共包含 137 名用户数据。所以如果我们想获取中位数,查询语句需要写成 LIMIT 68, 1)
                                                         --68*2+1=137

HAVING 子句

WHERE 子句作用于原数据表,用来筛 行;
HAVING 子句作用于分组结果,用来筛 分组.
即:筛选行的时候用 WHERE,筛分组的时候用 HAVING

若连接使用等时,不需要英逗,要根据条件来筛选
                                                                   AND   OR   NOT 

 

 


总结:
逻辑:确定数据来源 → 按行进行筛选 → 确定分组 → 按分组进行筛选 → 从结果中挑选部分列 → 排序 → 从结果中限制展示部分行

每执行一步,都会生成一张虚拟表,供下一步骤使用。

 

PS:由于 SQL 标准指出,SELECT 子句是在 WHERE、GROUP BY 子句之后执行的,因此在部分严格执行该标准的环境中,比如 Oracle、MySQL,WHERE 与 GROUP BY 子句里不能使用 SELECT 子句中定义的别名。而在 SQLite 中没有该限制。


 

标签:聚合,SQL,分组,子句,GROUP,WHERE,HAVING
From: https://www.cnblogs.com/catch-autumn/p/16826654.html

相关文章

  • SQL-- 七(子查询--AIPL漏斗分析)
    子查询AIPL漏斗分析Ⅰ:①作为取值范围    像这样,用一对圆括号 () 包裹,作为一个元素参与到外层查询中的查询,被称为 子查询。   ps:此时的子查询,是外层......
  • mysqlundolog什么时候产生
    mysql的redolog文件夹可以删除吗RedoLog记录的是redo,那么redo是什么呢?通俗来讲,redo记录的是对应的记录改变的物理操作。说实话,过去的很长一段时间内,我对redo的认识也仅限于......
  • mysQL uuID 查询
    mysql怎么获取刚生成的uuid作为主键,UUID长度过长,主键索引KeyLength长度过大,而影响能够基于内存的索引记录数量,进而影响基于内存的索引命中率,而基于硬盘进行索引查询性能很差......
  • mysqlsql执行顺序
    mysql语句的执行顺序问题这是先执行ORDERBY语句,大多数的你想找前N条记录的时候LIMIT都会最后执行,因为如果不是这样的话就不会达到你想要的记录本回答由提问者推荐MSSQL里,多......
  • mysqlsequence并发
    mysql有sequence吗在该目录中创建一个小型php文件(info.php的)在浏览器中调用它。该文件将显示很多关于我们的php安装,如安装的php版本和有用的一些细节。如何用navicatpre......
  • MySQLsocklock
    如何查找mysql的mysql.sock文件mysql.sock文件是服务器与本地客户端进行通信的Unix套接字文件具体的/etc/my.cnf有配置如果是这个报错起不来主要看下配置文件是否有错误。......
  • 谁都知道SQL“德高望重”,偏偏就有人想取而代之,你同意吗?
    SQL作为一种关系型数据库广泛都在使用的标准处理语言,由于其优秀的表现已经获得世界范围内厂商和用户的普遍认可。如MySQL、Oracle、SQLServer、Sybase、Informix等。甚至......
  • 快速启动postgresql
    文档说明:只记录关键地方;试验环境:linuxdebian11postgresqlcontainerversion:"3"services:postgresql-server:image:postgres:15-alpinec......
  • 快速启动mysql
    文档说明:只记录关键地方;试验环境:linuxdebian11mysql-serverversion:"3"services:mysql-server:image:mysql:8-debiancommand:--charact......
  • freeSql一对多 oneToMany实例
    一:公司publicpartialclassItemCompanyEntity:EntityFull{  ///<summary>  ///工程ID  ///</summary>  [Column(StringLength=20)]  pub......