// 分组查询和聚合函数
        // 分组查询 : 将指定字段中的数据,按照不同的具体数值,进行分组
        //           数据相同的分在一个分组中
        //           一个分组中存储多条数据,实际只显示条数据
        SELECT * FROM `user3` GROUP BY `dep`;
        mysql>         SELECT * FROM `user3` GROUP BY `dep`;
        +----+--------+------+------+------+-------+----------+
        | id | name   | age  | sex  | city | dep   | pay      |
        +----+--------+------+------+------+-------+----------+
        |  5 | Eric   |   23 | 保密  | 北京     | JAVA  |  9000.00 |
        |  1 | 王卓   |   21 | 保密   | 上海    | PHP   | 15000.00 |
        |  4 | 梁晓洁  |   17 | 女    | 北京     | UI/UE |  8000.00 |
        |  2 | Andy   |   27 | 男     | 广州     | WEB   |  9000.00 |
        +----+--------+------+------+------+-------+----------+
        当前是 按照 dep 字段的数据进行分组
        dep当中 数据相同的 会分在同一组别中存储
        显示默认只显示一条数据
            |  5 | Eric   |   23 | 保密  | 北京     | JAVA  |  9000.00 | 
            虽然只显示的是当天这一条数据,实际 在 dpe 是 java 的分组中 存储的是 所有 dep 是 java 的数据
        聚合函数是专门针对 分组中的数据 进行的 数据操作
        COUNT()     计算分组中的数据数据数量
        MIN()       计算分组中数据的最小值
        MAX()       计算分组中数据的最大值
        AVG()       计算分组中数据的平均值
        SUM()       计算分组中数据的总和
        查询每个部门的 平均薪资
        每个部门   按照 部门 `dep` 字段 分组查询  GROUP BY `dep`
        平均薪资   求 平均值 使用 AVG() 聚合函数 
                  薪资  AVG() 中的字段 是 存储薪资的字段 `pay`
        联合查询,需要设定在 SELECT 和 FROM 之前,作为查询内容执行,结果会显示在结果的表结构中
        SELECT 和 FROM 中还需要设定哪个字段,需要看项目需求
        SELECT `dep` , AVG(`pay`) FROM `user3` GROUP BY `dep`;
        求每个部门的平均年龄
        每个部门  按照 部门字段 `dep` 分组 
        平均      聚合函数 AVG()
        年龄      聚合函数()中写 年龄字段 `age`
        SELECT `dep` , AVG(`age`) FROM `user3` GROUP BY `dep`;
        求 每个城市 年龄 在 20-25岁之间 员工人数
        每个城市   按照城市字段分组  GROUP BY `city`
        员工人数   员工人数实际就是数据数量    
                   使用 聚合函数 COUNT() 
                   COUNT() 查询数据数量,一般写 `id` 字段
                   数据简单,不会重复
        年龄在 20 -25 岁之间  `age` >= 20 AND `age` <= 25
                             这是对于字段的约束条件,使用 WHERE 来设定
        先写 WHERE 再写 GROUP BY
        SELECT `city` , COUNT(`id`) as `人数` FROM `user3` WHERE `age` >= 20 AND `age` <= 25 GROUP BY `city`;
                
        显示 20-25岁员工人员数在 10人以上的城市信息
        新增约束条件  员工人数 > 10 
        员工人数 不是某个指定的字段 是 聚合函数的执行结果 
        聚合函数的执行结果,不能使用WHERE来约束,WHERE是约束字段数据的
        聚合函数的约束条件使用 HAVING 来执行
        HAVING 写在 GROUP BY 之后
        SELECT `city` , COUNT(`id`) as `人数` FROM `user3` 
        WHERE `age` >= 20 AND `age` <= 25 
        GROUP BY `city` 
        HAVING COUNT(`id`) > 10 ;
        查询部门最高薪资
        SELECT `dep` , MAX(`pay`) FROM `user3`
        GROUP BY `dep`; 
        查询部门20-25岁人员的最高薪资
        SELECT `dep` , MAX(`pay`) FROM `user3`
        WHERE `age` >= 20 AND `age` <= 25
        GROUP BY `dep`; 
        显示部门20-25岁人员的最高薪资 大于 20K的 部门
        SELECT `dep` , MAX(`pay`) FROM `user3`
        WHERE `age` >= 20 AND `age` <= 25
        GROUP BY `dep`
        HAVING MAX(`pay`) > 20000; 
        复杂查询也是由简单查询语句组合而成
        */
 
/*
            设定查询结果的排序方式
                查询结果,默认按照 id 主键值的 升序 排列
                查询结果,可以按照指定字段的 升序 或者 降序 排列
                SELECT * FROM `表名` ORDER BY `字段` 排序方式
                排序方式 : ASC 升序  默认值可以不写
                          DESC 降序 要设定就必须写
        
        
                按照年龄,从小到大显示员工信息
                SELECT * FROM `user3` ORDER BY `age` ;
                按照薪资排序 从大到小
                SELECT * FROM `user3` ORDER BY `pay` DESC;
                可以同时设定多个字段的排序方式
                先按照第一个字段的排序方式进行排序
                数据相同时,再按照第二个字段排序方式进行排序
                
                先按照 age 字段的 升序排列 
                age 数值相同时 再 按照 `id` 字段的升序排列
                SELECT * FROM `user3` ORDER BY `age` , `id` ;

php分组查询和聚合函数 数据显示的顺序的更多相关文章

  1. MySQL-快速入门(5)数据查询-常用关键字、分组查询、聚合函数

    1.in关键字.in的效率高于or. in (value1,value2,...) 或者not in (value1,value2,...) 2.between ... and ... between ...

  2. MySQL全面瓦解10:分组查询和聚合函数

    概述 相信我们经常会遇到这样的场景:想要了解双十一天猫购买化妆品的人员中平均消费额度是多少(这可能有利于对商品价格区间的定位):或者不同年龄段的化妆品消费占比是多少(这可能有助于对商品备货量的预估). ...

  3. 【SQL基础】【记住重命名】高级查询:聚合函数(四舍五入)、分组过滤、排序、

    〇.概述 1.功能概述 高级查询:聚合函数(四舍五入).分组过滤.排序. 2.建表语句 drop table if exists user_profile; CREATE TABLE `user_pr ...

  4. 【软件实施面试】MySQL和Oracle联合查询以及聚合函数面试总结

    软件实施面试系列文章第二弹,MySQL和Oracle联合查询以及聚合函数的面试总结.放眼望去全是MySQL,就不能来点Oracle吗?之前面过不少公司,也做过不少笔试题,现在已经很少做笔试题了.你肚子 ...

  5. SQL分组查询及聚集函数的使用

    今天要做一个查询统计功能,一开始有点犯难,上午尝试大半天才写出统计sql语句,才发现自己sql分组查询及聚集函数没学好:其实就是group by子句和几个聚集函数,熟练使用统计功能很简单.在此总结下今 ...

  6. SQL——连接查询、聚合函数、开窗函数、分组功能、联合查询、子查询

    连接查询 inner join,用的最多,表示多张表一一对应 聚合函数 操作行数据,进行合并 sum.avg.count.max.min 开窗函数 将合并的数据分布到原表的每一行,相当于多出来了一列, ...

  7. 18 12 06 sql 的 基本语句 查询 条件查询 逻辑运算符 模糊查询 范围查询 排序 聚合函数 分组 分页 连接查询 自关联 子查询

    -- 数据的准备 -- 创建一个数据库 create database python_test charset=utf8; -- 使用一个数据库 use python_test; -- 显示使用的当前 ...

  8. SQL 数据库备、还,附、分,数据查询,聚合函数

    认识数据库备份和事务日志备份 数据库备份与日志备份是数据库维护的日常工作,备份的目的是在于当数据库出现故障或者遭到破坏时可以根据备份的数据库及事务日志文件还原到最近的时间点将损失降到最低点. 数据库备 ...

  9. 【2017-03-12】SQL Sever 子查询、聚合函数

    一.子查询 子查询:把一条查询语句,当做值来使用子句的查询结果必须是一列子句可以返回多行数据,但必须是一列 子句返回的值为一个值的时候: 例如: 我只知道c026这个编号,我要查询比这个车价格低的全部 ...

  10. MongoDB分组查询,聚合查询,以及复杂查询

    准备数据 from pymongo import MongoClient import datetime client=MongoClient('mongodb://localhost:27017') ...

随机推荐

  1. 详细的讲一下微服务框架--SpringCloud

    一:微服务架构? 1.为什么需要微服务架构 大家都知道,最开始开发系统就是单机模式(only one computer).但是随着网络的不断发展,数据不断的增加,业务不断的增加,之前在一台机器上实现的 ...

  2. Jenkins集成GitLab的正确姿势,实现Git代码提交触发CI/CD

    ❝ jenkins和gitlab是目前DevOps工具链中最常见的,抛开gitlab-ci不谈,gitlab代码提交触发jenkins流水线是最经典的搭配. 这里就介绍下如何配置实现jenkins和g ...

  3. C++ 构造函数实战指南:默认构造、带参数构造、拷贝构造与移动构造

    C++ 构造函数 构造函数是 C++ 中一种特殊的成员函数,当创建类对象时自动调用.它用于初始化对象的状态,例如为属性分配初始值.构造函数与类同名,且没有返回值类型. 构造函数类型 C++ 支持多种类 ...

  4. eclipse 配置tomcat(更新了比较详细的版本)

    eclipse 配置tomcat 打开eclipse,在上栏找到Window,点开找到preferences,点击,就有一个弹框出现 然后找到server,点开找到runtime environmen ...

  5. Snowflake如日中天是否代表Hadoop已死?大数据体系到底是什么?

    ​简介: 本文作者关涛是大数据系统领域的资深专家,在微软(互联网/Azure云事业群)和阿里巴巴(阿里云)经历了大数据发展20年过程中的后15年.本文试从系统架构的角度,就大数据架构热点,每条技术线的 ...

  6. [Trading] 日间交易中的成交量分析 - 使用成交量趋势来提高你的效果

    在交易中,成交量代表在特定时期内股票或期货合约的易手单位数量. 交易员将其作为一个关键指标,因为它让他们知道资产的流动性水平,以及他们在接近当前价格的情况下买入或卖出头寸的容易程度,这可能是一个移动的 ...

  7. [FAQ] Vue 如何控制标签元素的某个属性的显示 ?

    这需要借助 v-model 的用法,动态决定元素的展示. <q-btn :disable="2 > 1">按钮</q-btn> 展示结果是:<q ...

  8. [Go] 注意 go build -o <output> 选项的准确含义

    -o <output> 选项强制执行把构建的可执行文件写入到目标文件或者目标目录中. 如果 output 是已存在的目录,那么所有构建好的文件都将写入到该目录中. 注意:如果目录不存在的话 ...

  9. dotnet 使用 XWT 构建跨平台客户端 入门篇

    本文告诉大家如何入门开始开发一个基于 mono 组织开源的 XWT 跨平台客户端 UI 框架的应用,本文的 xwt 是在 GitHub 上完全开源的,基于 MIT 协议的,底层采用 GTK# 的 UI ...

  10. PostMan接口测试实用小点

    PostMan接口测试实用小点 1. 接口测试变量存取操作 在Postman中有很多地方可以存储一些变量,这里只介绍经常使用的环境变量.变量设置后,在UI界面可以通过{{变量名}}获取到对应值. 在环 ...