MySQL 中聚合函数不可用直接嵌套使用,比如: MAX(AVG(sal))、MAX(COUNT(*))...

解决思路:可以使用嵌套子查询,先分组取出被嵌套的聚合函数结果,再使用外聚合函数嵌套。

(应该有更合适方式,待补充)

示例:

-- 查询平均工资最高的部门信息

SELECT deptno, MAX(SELECT AVG(sal) FROM emp GROUP BY deptno) FROM emp; -- 错误语法

SELECT MAX(AVG(sal)) FROM emp GROUP BY deptno; -- Invalid use of group function Oracle 可用

SELECT deptno, AVG(sal) FROM emp GROUP BY deptno;

SELECT e.deptno, MAX(e.avg_sal) FROM (SELECT deptno, AVG(sal) avg_sal FROM emp GROUP BY deptno) e ; -- 错误

SELECT * FROM emp ORDER BY sal DESC;

SELECT empno, ename, job, mgr, hiredate, MAX(sal), deptno FROM emp ; -- 错误

SELECT e.empno, e.ename, e.job, e.mgr, e.hiredate, AVG(e.sal), e.deptno FROM emp e,( SELECT MAX(e1.avg_sal) max_avg_sal FROM (SELECT AVG(sal) avg_sal, deptno FROM emp GROUP BY deptno) e1) e2 GROUP BY deptno HAVING AVG(e.sal) = e1.max_avg_sal; -- 错误

SELECT

AVG( e.sal ),

e.deptno

FROM

emp e,

(SELECT AVG( sal ) avg_sal, deptno FROM emp GROUP BY deptno) ea1,

(SELECT MAX(ea.avg_sal) ma FROM (SELECT AVG( sal ) avg_sal FROM emp GROUP BY deptno) ea) ea2

WHERE

e.deptno = ea1.deptno AND ea1.avg_sal = ea2.ma

GROUP BY

deptno ; -- 正确(???)

Oracle 中可以直接嵌套聚合函数,非常方便,难道 MySQL 中没有更好的方法吗?应该是有

mysql 嵌套函数_MySQL 聚合函数嵌套使用相关推荐

  1. mysql where不能用聚合函数_Mysql聚合函数对where语句筛选结果的影响

    未用聚合函数时 select   create_date  FROM unlimited_user_history WHERE 1 != 1; 筛选结果为0件 但是用了聚合函数 select    M ...

  2. mysql的所有聚合函数_MySQL 聚合函数(一)聚合(组合)函数概述

    MySQL版本:5.7+ 一.MySQL 5.7中的聚合函数 MySQL 5.7中的聚合函数如下: 除非另有说明,否则组合函数会忽略NULL值. 如果在不包含Group By子句的语句中使用组合函数, ...

  3. mysql有rollup函数_MySQL 聚合函数(二)Group By的修饰符——ROLLUP

    一.ROLLUP 修饰符的意义 GROUP BY子句允许添加WITH ROLLUP修饰符,该修饰符可以对分组后各组的某个列的结果值进行汇总,并在结果中输出,即提供更高一级的聚合操作. 因此,ROLLU ...

  4. mysql case when 聚合函数_mysql聚合函数

    group_concat  可以对分组查询后的值进行拼接,如 select a group_concat(b) from z group by a;  就会按a列分组,b列对应聚合结果以逗号进行分隔 ...

  5. MySql基础篇---002 SQL之SELECT使用篇: 基本的SELECT语句,运算符,排序与分页,多表查询,单行函数,聚合函数,子查询

    第03章_基本的SELECT语句 讲师:尚硅谷-宋红康(江湖人称:康师傅) 官网:http://www.atguigu.com 1. SQL概述 1.1 SQL背景知识 1946 年,世界上第一台电脑 ...

  6. MySQL中的组函数(聚合函数)

    MySQL中的组函数(聚合函数) 组函数操作行集,给出每组的结果.组函数不象单行函数,组函数对行的集合进行操 作,对每组给出一个结果.这些集合可能是整个表或者是表分成的组. 一.组函数与单行函数的区别 ...

  7. MySQL中的常用函数和聚合函数

    常用函数和聚合函数 官网:https://dev.mysql.com/doc/refman/8.0/en/built-in-function-reference.html 常用函数: -- ===== ...

  8. mysql 求平均数 (AVG聚合函数)

    mysql 求平均数 (AVG聚合函数) SELECT ROUND(AVG(score),3) AS 平均分 FROM grade AVG:平均数 聚合函数 ROUND:四舍五入 3:保留三位小数

  9. MySQL专题四——MySQL函数(聚合函数)

    MySQL聚合函数 1.聚合函数介绍 什么是聚合函数 聚合函数作用于一组数据,并对一组数据返回一个值 聚合函数类型 AVG() SUM() MAX() MIN() COUNT() 聚合函数语法 SEL ...

最新文章

  1. 开发者如何构建技术影响力
  2. LTE基带芯片出货量首次超过50%
  3. 服务器开机修改grub,修改 grub
  4. 机器学习特征表达——日期与时间特征做离散处理(数字到分类的映射),稀疏类分组(相似特征归档),创建虚拟变量(提取新特征) 本质就是要么多变少,或少变多...
  5. 命主属性是水什么意思_涧下水命是什么水 涧下水命的含义(图文)
  6. Mysql安装及自动化部署脚本方案
  7. spring mvc 异步_DeferredResult – Spring MVC中的异步处理
  8. liigo:爱可视70平板电脑使用感受,遗憾与满足并存
  9. 中职计算机属于专业课还是文化课,对中职计算机专业建设探讨.doc
  10. 「野性消费」也不怕!打造供应链数据平台,业务逻辑模板都在这了
  11. 机器学习ai选股_自带AI机器学习的MEMS了解一下
  12. Java 读取excel 需要的jar_java自定义jar包读取Excel(包含2003和2007)数据,并举例说明...
  13. socat命令如何监听Linux串口设备通讯报文
  14. leach算法的实现过程_LEACH算法的MATLAB代码.doc
  15. 实数系与实数定理(下)
  16. 微软live服务器地址,在Mail中设置windows Live hotmail方法
  17. html图片文字下方,css图片下边怎么加字
  18. 2021-10-27 求方向盘转角
  19. import librosa 出错???
  20. oracle ogg下载安装,【OGG】OGG的下载和安装篇

热门文章

  1. 手把手教你用鸿蒙HarmonyOS实现微信聊天界面(一)
  2. win7下解决Wow“连续未响应”debuff方案
  3. 详解 Python 生成器与迭代器 及其区别
  4. 百度网盘如何免费提速?
  5. 鼠标经过箭头时,图片会向左或向右…
  6. execlp使用例子_execlp函数使用
  7. Java字符串替换功能
  8. 高级人力资源管理最喜欢的工具;笔迹分析测试的六大好处
  9. 分手只为更好!Keras正式从TensorFlow分离
  10. 八大排序算法的Python实现 1