当前位置: 首页 > news >正文

做网站像素大小重庆域名注册官网

做网站像素大小,重庆域名注册官网,珠海哪里有网站建设,学做美食的网站视频引言 承接上一篇《MySQL 基础 ————高频函数总结》#xff0c;本篇单独针对分组查询进行简单的总结和归纳#xff0c;并为后续更为复杂的DQL 语句做好铺垫。 查询语句#xff1a; SELECT AVG(salary) FROM teacher; 实际上是以全表的 salary 字段来求平均值。但是在实…引言 承接上一篇《MySQL 基础 ————高频函数总结》本篇单独针对分组查询进行简单的总结和归纳并为后续更为复杂的DQL 语句做好铺垫。 查询语句 SELECT AVG(salary) FROM teacher; 实际上是以全表的 salary 字段来求平均值。但是在实际应用中往往有一些特殊的需求比如求每个部门的平均工资。这个时候就需要将表进行分组然后再进行查询。 上图左边的是 teacher 的整张表我们通过 lesson (任课科目) 来进行分组然后再求出每种科目老师的平均工资。 一、GROUP BY 子句 使用 GROUP BY 子句进行数据的分组能够分为一组的字段值必须相同。 GROUP BY 子句的位置在 WHERE 查询条件之后而且一般情况下GROUP BY 都是处在查询语句偏后的位置。 注意查询列表必须出现在 分组函数 或 GROUP BY 子句中。比如引言中的按照学科分组查询平均工资 SELECT AVG(salary) FROM teacher GROUP BY lesson; 其中查询列表就是 salary因为每组中必有 1 条记录因此只有进行聚合计算才能使结果具有实际意义因此要么查询的字段可以放在分组函数中求出特定的值要么就是该分组字段。 二、案例分析 从案例中可以总结出一定的规律即当需求中有出现类似“每个”的字样且这个字段与该表中记录的关系是一对多的话就可能用到分组查询。 同时根据上一节的结论查询列表必须放在分组函数中否则不具有意义。因此我们可以得出只要查询用到了 GROUP BY 子句就一定会用到 分组函数。 案例有如下一张学生分数表查询出语数外总分最高的分数 SELECT MAX(chinese_score math_score english_score) 最高分 FROM score; 通过另一个SQL进行一下检查可以看到结果完全正确 SELECT chinese_score math_score english_score AS 总分,chinese_score 语文,math_score 数学,english_score 英语,stu_id FROMscore ORDER BY 总分 DESC ; 三、HAVING 子句 3.1 HAVING 子句介绍 在分组查询中往往会涉及到需要先分组后筛选的情况与前面简单的先筛选后分组相区分。 比如有这样的需求“查询 部门中人数  2 的部门”。很明显需要分两步来查询第一步是先通过分组查询出所有部门的人数如 SELECT COUNT(*), dept_id FROM emp GROUP BY dept_id; 然后再在这个结果集中进行筛选我们可以使用HAVING子句在GROUP BY 子句后面再加一层筛选条件 SELECT COUNT(*), dept_id FROM emp GROUP BY dept_id HAVING COUNT(*) 2; 另外我们也可以通过另一种比较笨重的查询子查询结果是一样的 SELECT m.人数,m.dept_id FROM(SELECT COUNT(*) 人数,dept_id FROMemp GROUP BY dept_id) m WHERE m.人数 3 ; 3.2 HAVING子句的使用时机 什么时候使用HAVING子句呢 当然是在需要进行多步查询的时候这时会出现一个明确的标志。我们知道分组查询一定会用到分组函数那么HAVING 子句的使用一定是由于分组函数上有筛选条件。 比如有这样的需求查询部门最高工资 12000 的部门编号和最高工资。 思路是首先最高工资是通过聚合函数算出而在这个聚合函数的结果上又加了一个“ 12000 ” 的筛选条件因此就会用到HAVING 子句。 思考如何查询部门最高工资12000的平均工资且性能较好。 四、GROUP BY 子句扩展 4.1 按表达式结果分组 group by子句除了支持单个字段进行分组,还支持表达式分组。比如按照学生名称的长度分组查询每组学生的个数。 SELECT COUNT(*),CHAR_LENGTH(stu_name) 长度 FROMstudent GROUP BY CHAR_LENGTH(stu_name) ; 另外group by 后面支持别名比如上面的语句可以改成 SELECT COUNT(*),CHAR_LENGTH(stu_name) 长度 FROMstudent GROUP BY 长度 ; 4.2 多字段分组 GROUP BY 同样支持多字段分组它的含义是在分组的基础上再进行分组。比如需求先按照工种分组再按照部门分组 SELECT AVG(salary),department_id,job_id FROMemp GROUP BY job_id,department_id ; 多字段分组只需要将各个字段用逗号隔开即可。不过虽然说分组之上再分组看似有前后顺序之分但实际上分组字段的前后字段不会影响最后结果可以随意调换。 总结 基本非常重要的结论。 1、GROUP BY 子句一定在 WHERE 条件之后。 2、查询列表必须出现在 分组函数 或 GROUP BY 子句中。 3、当需求中“每个、每种” 后面的字段可能包含有多条记录的时候就会用到分组查询如每个部门每个年级每种食品。 4、只要查询用到了 GROUP BY 子句就一定会用到 分组函数。 5、若逻辑上的筛选条件在分组之后可以使用 HAVING 子句对分组之后的数据进行过滤。 6、GROUP BY 子句支持表达式支持别名支持多字段分组多字段分组用逗号隔开字段顺序没有影响。 7、常见的分组函数有COUNT()、AVG()、MAX() 、MIN() 等。 综上就是关于 分组相关的知识总结。欢迎文末留言和关注。
http://www.zqtcl.cn/news/104424/

相关文章:

  • 信息科技有限公司网站建设网站运营主要做什么
  • 广州建筑公司网站网站上的动态图怎么做
  • win10系统可以做网站搭建网站和微信同步建设
  • 在哪里能找到做网站的人医疗网站建设意见
  • 网站制作及实现wordpress在线工具
  • 网站制作中企动力优响应式网站建设有利于seo
  • 区块链媒体网站建设wordpress页脚内容居中
  • php手机网站开发工具成都的教育品牌网站建设
  • 苏州建网站要多少钱八爪鱼采集器 wordpress
  • 确定网站风格thinkphp相比Wordpress
  • 网站全屏代码wordpress无法连接ftp
  • 做ppt配图好用的网站重庆制作网站有哪些
  • 门户网站建设进度安卓手机开发者模式
  • 招商网站建设需要什么网站开发 在线数据库
  • 创建网站代码网站二级页怎么做
  • 网站建设 前沿文章建设网站网站建设公司
  • dede网站seo微信开店怎么注册开店流程
  • 苏华建设集团有限公司网站wordpress 普通文本 quot
  • 网站首页倒计时功能怎么做学网站开发技术
  • 上海网站备案流程欧宇公司网络建设方案
  • 网站营销型办公室装修费用会计分录
  • 个人网站网页设计模板学校ftp服务器做网站
  • 黄江网站建设外贸公司用的采购储运财务软件
  • 优化网站公司做网站建设
  • 门户网站的盈利模式网站建设中备案
  • 代码需求网站织梦怎么关闭网站
  • 浙江工信部网站备案查询东圃做网站
  • icp网站域名怎么填写官方网站建设银行年利息是多少钱
  • 沈阳做网站好的信息流优化师证书
  • 做招聘网站创业seo优化工作