川石教育
全国咨询热线:136-9172-9932
  1. 首页 > 资讯与干货 > IT资讯

MySQL数据库统计函数使用详解

作者:川石学院 日期:2022-04-25 11:42:20 点击数:

一天一个关于测试知识点,5分钟内讲解你最关心的软件测试问题,今天就接着来谈谈关于软件测试中的“MySQL数据库统计函数使用详解”。

MySQL:数据库安装,基本配置及客户端工具使用(图1)

  统计函数

  统计函数是mysql函数中最重要的函数之一,是我们工作中使用最多、频率最高函数,它能有效地提高我们的工作效率,能快速地从复杂、繁琐的数据中提取我们需要的数据。

  统计类函数很多最常用的统计函数有:count(*),count(ve),count(distinct ve),sum(ve),sum(distinct ve),avg(ve),avg(distinct ve),max(ve),min(ve)等等,ve在这里统一指列名。

  统计函数使用注意事项:

  1.统计函数使用时select后边不能随意写其他列名。

  2.统计函数不能直接放到where后边作为过滤条件来用。

  3.统计函数通常情况下,只会返回一个值。

  一、统计函数具体介绍:

  1).count(*):

  统计查询结果集返回的行数。

  •   查询班里有多少学生?

  select * from student;

  select count(*) from student;

  •   统计年龄大于大乔学生有多少人?

  select * from student where sage>(select sage from student where sname="大乔");

  select count(*) from student where sage>(select sage from student where sname="大乔");

  2).count(ve):

  统计查询结果集返回的某一列非空值的个数。

  •   查询有多少员工?

  select * from emp;

  select count(*) from emp;

  select count(empno) from emp;

  •   统计价格大于3000的商品有多少种?

  select * from ecs_goods where shop_price>3000;

  select count(*) from ecs_goods where shop_price>3000;

  select count(id) from ecs_goods where shop_price>3000;

  3).count(distinct ve):

  统计查询结果集返回的某一列非空且不同值的个数。

  •   查询员工一共来自多少个部门。

  select count(DISTINCT deptno) from emp;

  4).sum(ve)

  统计查询结果集返回的某一列非空值的和。

  •   查询所有员工每月工资总和是多少。

  select sum(sal) from emp;

  select * from emp;

  •   查询销售部员工工资总和;

  select * from emp,dept where emp.deptno=dept.deptno and dname="sales";

  select sum(sal) from emp,dept where emp.deptno=dept.deptno and dname="sales";

  5).sum(DISTINCT ve)

  统计查询结果集返回的某一列非空,且不同值的和。

  6).avg(ve)

  统计查询结果集返回的某一列非空值的平均值。

  •   查询销售部员工的工人数,总工资,平均工资。

  select count(*),sum(sal) ,sum(sal)/count(*),avg(sal) from emp,dept where emp.deptno=dept.deptno and dname="sales";

  •   求参加了考试的学生的平均成绩。

  select avg(score) from sc;

  •   求张三同学的平均成绩、参加考试门数,总成绩。

  select avg(score),count(cno),sum(score) from student s,sc where s.sno=sc.sno and sname="张三";

  7)avg(DISTINCT ve)

  统计查询结果集返回的某一列非空且不同值的平均值。

  8)max(ve)

  统计查询结果集返回的某一列的最大值

  9)min(ve)

  统计查询结果集返回的某一列的最小值

  •   求商品售价最高、最低商品是什么?

  SELECT

  g.*

  FROM

  ecs_goods g,

  ( SELECT max( shop_price ) mas, min( shop_price ) mis FROM ecs_goods ) t

  WHERE

  g.shop_price = t.mas

  OR g.shop_price = t.mis;

  二、普通函数和统计函数的区别。

  1.统计函数一般只能放到select后边,而普通函数既可以放到select后边,也可直接放到where后边。

  2.统计函数放到select后边时,不能随意写其他列名,而普通函数放到select后边,还可以写其他的列名。

  3.统计函数在查询结果集没有分组的情况下,一般一个函数只会返回一个结果。而普通函数对表的每一行都会返回一个结果。

  三、以统计函数和普通函数区别实例。

  1)商品类型为数码相机的商品有多少个,它们的总库存是多少;

  select count(*),sum(goods_number) from ecs_goods g,ecs_goods_type t

  where g.goods_type=t.cat_id and cat_name="数码相机";

  2)销售部有多少个员工;

  select count(*) from emp ,dept where emp.deptno=dept.deptno and dname="sales";

  3)统计所有手机的市场平均价格是多少;

  select avg(market_price) from ecs_goods g,ecs_goods_type t

  where g.goods_type=t.cat_id and cat_name like "%手机";

  4)最近一次的订单日期是哪一天;

  select max(from_unixtime(add_time)) from ecs_order_info;

  5)求市场价格大于销售价格的商品有哪些;

  select * from ecs_goods where market_price>shop_price;

  6)请求出张三同学的最高分,最低分,平均分,总分,以及所学课程数;

  select max(score),min(score),avg(score),sum(score),count(cno) from student s,sc where s.sno=sc.sno and sname="张三";

  7)找出入职最早的员工;

  select * from emp where HIREDATE=

  (select min(HIREDATE) from emp);

  8)找出出生年月最小的学生,及出生日期;

  select * from student where birth_date=(select max(birth_date) from student);

  9)找出单科成绩最高的学生,输出其成绩;

  select s.sno,sname,cname,score from student s,sc,course cc where s.sno=sc.sno and sc.cno=cc.cno and score=

  (select max(score) from sc);

  10)输出学生表所有姓氏;

  select left(sname,1),sname from student;

  11)输出所有学生的出生的月份、出生的年份;

  select sname,month(birth_date),year(birth_date),day(birth_date) from student;

  12)每个月按照22个工作日算的话,请计算出日薪资,只保留整数位;

  select TRUNCATE(sal/22,0) from emp

  13)找出大于女生平均年龄的所有学生;

  select * from student where sage>(select avg(sage) from student where ssex="女");

  14)找出2008出生的学生有哪些(使用函)

  select * from student where left(birth_date,4)=2008;

  select * from student where year(birth_date)='2008';


相关文章
  • 亚马逊运营成功转行软件测试,薪资13K表示很满意!2022-04-25 11:42:20
  • 西安川石的兰朋友喊你来当他的学弟学妹啦!2022-04-25 11:42:20
  • 国外的月亮也不一定比国内测试猿的年薪美~2022-04-25 11:42:20
  • 建筑工程专业朱同学成功转行为软件测试人!2022-04-25 11:42:20
  • 财务管理专业转行软件测试月薪甩会计几条街!2022-04-25 11:42:20
  • 只有技术沉淀才能成功上岸,深圳就业薪资13K!2022-04-25 11:42:20
  • 薪资11K!实现自我价值,从掌握一门IT技术开始...2022-04-25 11:42:20
  • 文科生转行软件测试照样拿下高薪15K!2022-04-25 11:42:20
  • 恭喜罗同学喜提19.5K,成功入行软件测试!2022-04-25 11:42:20
  • 毕业1年,迷茫的他最终选择转行软件测试2022-04-25 11:42:20