• 从group by 展开去


    一、概念

      “Group By”从字面意义上理解就是根据“By”指定的规则对数据进行分组,所谓的分组就是将一个“数据集”划分成若干个“小区域”,然后针对若干个“小区域”进行数据处理。既然是要针对若干个“小区域”进行数据处理,那就肯定是与sql的聚合函数搭配起来使用。

    二、建表

      这里在我使用经常练习sql的一个数据库里的建一张表,表明:demo

      

    三、简单group by练习

      SELECT Sage,avg(Sscore) FROM t_student GROUP BY Sage;

      结果为

      

    四、遇到问题

      当我使用Oracle写一个这样的sql 时,就会报错:SELECT Ssex, Sage,avg(Sscore) FROM t_student GROUP BY Sage;

      这就是需要注意的一点,在select指定的字段要么就要包含在Group By语句的后面,作为分组的依据;要么就要被包含在聚合函数中。

      但是我在MySQL中运行这段sql却可以正常运行,不过现实的结果明显是不符合逻辑的。

    五、聚合函数

      group by语句中select指定的字段必须是“分组依据字段”,其他字段若想出现在select中则必须包含在聚合函数中。除了avg()函数外,还有这些聚合函数,

      

    六、having 与 where之间的区别

    • where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,where条件中不能包含聚组函数,使用where条件过滤出特定的行。
    • having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件过滤出特定的组,也可以使用多个分组标准进行分组。
  • 相关阅读:
    Linux常用命令
    IDEA神器
    Nginx配置文件变量大全
    php-fpm.conf 文件详解
    mysqlsla慢查询分析工具教程
    Nginx upstream的5种权重分配方式
    Nginx简单性能调优
    MySQL 5.5主从同步设置教程
    mongoDB中批量修改字段
    Python学习笔记第四周
  • 原文地址:https://www.cnblogs.com/assasion/p/7768734.html
Copyright © 2020-2023  润新知