• 16_MySQL聚合函数的使用(重点,建议大家多动手操作)


     本节所涉及的SQL语句

    -- 聚合函数
    
    SELECT AVG(sal+IFNULL(comm,0)) AS avg
    FROM t_emp;
    
    -- SUM
    
    SELECT SUM(sal)
    FROM t_emp
    WHERE deptno IN (10,20);
    
    -- MAX
    
    SELECT MAX(sal+IFNULL(comm,0)) AS max 
    FROM t_emp
    WHERE deptno IN (10,20);
    
    SELECT MAX(LENGTH(ename)) AS max 
    FROM t_emp
    WHERE deptno IN (10,20);
    
    -- MIN()
    -- AVG
    
    -- count
    SELECT COUNT(*)
    FROM t_emp;
    
    SELECT COUNT(comm)
    FROM t_emp;
    
    
    
    -- 查询10,20 部门中底薪超过2000并且工龄超过15年的员工人数
    
    SELECT count(*)
    FROM t_emp
    WHERE deptno IN (10,20) AND sal>=2000 AND DATEDIFF(NOW(),hiredate)/365>=15;
    
    
    -- 查询1985年以后入职的员工,底薪超过公司平均底薪的员工数量
    -- 错误示例
    SELECT count(*)
    FROM t_emp
    WHERE sal>AVG(sal) AND hiredate>"1985-01-01";
    -- 函数永远不能放在where中

     

     

     

     

     

     

     

     

     

     

     

    注意:上面第二个问题的语句书写有问题,切记聚合函数一定不能出现在WHERE语句中,因为聚合函数的使用需要确定范围,WHERE是确定范围,在没有确定范围的前提下,聚合函数无法计算,所以WHERE也就无法运行

    那应该如何书写呢?请听下回分解……

  • 相关阅读:
    ajax 新闻栏目
    ajax 瀑布流实现
    html5 canvas图片渐变
    html5 canvas图片翻转
    html5 canvas图片反色
    ajax 第一个程序
    ajax 新闻栏目
    HDU 1756 Cupid's Arrow( 判断点在多边形的内外 )
    POJ 2356 Find a multiple( 鸽巢定理简单题 )
    HDU 5762 Teacher Bo ( 暴力 )
  • 原文地址:https://www.cnblogs.com/waterr/p/13955925.html
Copyright © 2020-2023  润新知