MySQL中sum和count用法总结

  • 1.sum
  • 2.count
    • 例子:要求:查询出2门及2门以上不及格者的平均成绩。
  • 3、MySQL 分组之后如何统计记录条数 gourp by 之后的 count()
    • 例子
  • 4、sum mysql select 横向展示
    • 例子1
      • 纵向展示
      • 横向展示
    • 例子2:

1.sum

(1)sum()函数里面的参数是列名的时候,是计算列名的值的相加,而不是有值项的总数。

(2)sum(条件表达式),如果记录满足条件表达式就加1,统计满足条件的行数

2.count

(1)COUNT()函数里面的参数是列名的的时候,那么会计算有值项的次数。(NULL 不计入, 但是’'值计入)

(2)COUNT(*)可以计算出行数,包括null

(3)COUNT(1)也可以计算出行数,1在这里代表一行

(4)COUNT(column_name)对特定的列的值具有的行数进行计算,不包含NULL值

(5)COUNT(条件表达式),不管记录是否满足条件表达式,只要非NULL就加1

例子:要求:查询出2门及2门以上不及格者的平均成绩。

经常会用两种查询语句有两种:第1个正确,第2个错误

1.select name,sum(score < 60) ,avg(score) from result group by name having sum(score<60) >=2;

2.select name ,count((score<60)!=0) as a,avg(score) from result group by name having a >=2;

3、MySQL 分组之后如何统计记录条数 gourp by 之后的 count()

SELECT count(*) FROM 表名 WHERE 条件 // 这样查出来的是总记录条

SELECT count(*) FROM 表名 WHERE 条件 GROUP BY id //这样统计的会是每组的记录条数.

例子

select count() from(SELECT count() FROM 表名 WHERE 条件 GROUP BY id ) a ;

SELECT count() FROM (SELECT COUNT() FROM papa_stadium_goods_storage_record WHERE c_time>=1474560000 and c_time<1476201600 group by record_type) a

注意:子查询方式,MySQL中子结果集必须使用别名,而Oracle中不需要特意加别名!

4、sum mysql select 横向展示

例子1

DROP TABLE IF EXISTS `tongji`;create table tongji(tyear varchar(255),tmonth int,amount double)Engine=Innodb default charset=utf8;insert into tongji values('2011',1,1.1),('2011',2,1.2),('2011',3,1.3),('2011',4,1.4),('2012',1,2.1),('2012',2,2.2),('2012',3,2.3),('2012',4,2.4);

纵向展示

select * from tongji;

横向展示

SELECT t.tyear , sum(if(t.tmonth=1,t.amount,null )) as 'm1' ,sum(if(t.tmonth=2,t.amount,null )) as 'm2' ,sum(if(t.tmonth=3,t.amount,null )) as 'm3' ,sum(if(t.tmonth=4,t.amount,null )) as 'm4'
FROM tongji t GROUP BY (t.tyear);

null 就是if 判断结果为else的时候返回 null。 语法格式是这样的: if(条件, 为true, 为false)

核心知识点:如果这里去掉sum()函数,查询的记录,会是下面这种结果,这是因为group语句分组的时候,存在一条对应多条记录的时候,只会显示一条,对应的多条会被覆盖,所以会出现这种结果

     SELECT distribution_order_username as distributionOrderUsername,sum(if(a.chat_status=1,count,0)) as 'dtgwx' ,sum(if(a.chat_status=2,count,0)) as 'khjj' ,sum(if(a.chat_status=3,count,0)) as 'wjt' ,sum(if(a.chat_status=4,count,0)) as 'dhf',sum(if(a.chat_status=5,count,0)) as 'wlx',sum(if(a.chat_status=6,count,0)) as 'yjwx',sum(if(a.chat_status,count,0)) as 'total'FROMSELECT distribution_order_username as distributionOrderUsername,sum(if(a.buyctiyid=440100,count,0)) as 'gz',sum(if(a.buyctiyid=440300,count,0)) as 'sz' ,sum(if(a.buyctiyid=441900,count,0)) as 'dg' ,sum(if(a.buyctiyid in (440100,440300,441900),count,0)) as 'total'FROM

例子2:

select DATE_FORMAT(created_time,'%Y-%m-%d') as '日期',
sum(if(product='毛巾',price,0)) as '毛巾',
sum(if(product='枕头',price,0)) as '枕头'
from trade
GROUP BY DATE_FORMAT(created_time,'%Y-%m-%d');

MySQL中sum和count用法总结相关推荐

  1. mysql中sum和count的区别

    sum()函数和count()函数的区别 其实两者很好容易区分,sum,即求和,多个列相加的和; count计数,一共有多少条数据 sum()函数求累加; 对符合条件的记录的数值列求和; count( ...

  2. MySQL笔记7:sum和count用法总结

    MySQL中sum和count用法总结 1.sum (1)sum()函数里面的参数是列名的时候,是计算列名的值的相加,而不是有值项的总数. (2)sum(条件表达式),如果记录满足条件表达式就加1,统 ...

  3. MySQL中ESCAPE关键字的用法详解

    MySQL中ESCAPE关键字的用法详解 MySQL中ESCAPE关键字的用法详解 1. mysql转义概述 2. escape验证 MySQL中ESCAPE关键字的用法详解 1. mysql转义概述 ...

  4. mysql 中set函数的用法

    mysql 中set函数的用法 :当值为空时不进行赋值 update user_user <set><if test="nickname!=null and nicknam ...

  5. Mysql中where和having用法及区别

    1.Mysql中Having和Where用法 当SQL语句中使用聚合函数,然后又需要对聚合函数的记录集进行筛选过滤时,这个时候就需要用到Having子句.如果是在聚合函数前过滤记录用Where,在聚合 ...

  6. MySQL中只会count(),sum()?累加运算没听过?

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 作者 | 码农小胖哥 来源 | 公众号「码农小胖哥」 01 前言 接了一个需求,产品想分析一 ...

  7. mysql count的用法_155、MySQL入门(五):SUM and COUNT用法

    Sqlzoo习题练习:SUM and COUNT 下面为SUM and COUNT习题内容: 知识点: SUM() 函数 SUM 函数返回数值列的总数(总额). SUM() 语法 SELECT SUM ...

  8. MySQL中聚合函数count的使用和性能优化

    本文将探讨以下问题 1.count(*) . count(n).count(null)与count(fieldName) 2.distinct 与 count 连用 3.group by (多个字段) ...

  9. mysql中replace函数的用法

    ##-----MySQL数据替换即replace的运用-----## #这里主要介绍一些关于replace函数的用法.关于研究这个主要是发现replace功能很强大 #对于屏蔽关键字很有用处. #现在 ...

最新文章

  1. Nginx —— 用HTTP proxy module配置一个反向代理服务器
  2. ajax正则验证p标签显示,JQuery+Ajax实现唯一性验证、正则
  3. 网站二次开发如何防止别人打包源码_面试官:你说你对Kafka比较熟?看过源码吗?...
  4. 工作203:实现预览效果
  5. vim nerdtree 标签_7款vim插件
  6. 这家武汉工厂如果停工,全球都不答应
  7. 前端2018年12月9日 前端开发路上的小白心得--励志当个领路人
  8. python透明图处理_python – 强制matplotlib图的背景是透明的
  9. pythongui项目实例_python GUI库图形界面开发之PyQt5状态栏控件QStatusBar详细使用方法实例...
  10. 个人博客作业-Week2 (代码规范, 代码复审)
  11. CentOS6.5配置网易163做yum源
  12. poj 2649 Factovisors
  13. 3. SQL 语句本身的优化(慢查询)
  14. 奇妙生活-神奇的数字-1的故事
  15. eclipse中文包和控制台中文显示乱码
  16. 论文写作笔记4 期刊选择-医学计算机
  17. [渝粤教育] 南京中医药大学 诊断学技能训练 参考 资料
  18. CGAL预定义内核转换的问题
  19. 弹性布局(骰子六个面制作)
  20. c#上位机plc通讯读位

热门文章

  1. java机试题---2021(算法)
  2. 宝利德余海军浙商封面 :新数智时代的修行者
  3. Linux指令-唐战伟
  4. 墨刀教程:如何快速制作一个App首页原型?
  5. Git 之三 常用命令:仓库创建、提交、分支等
  6. 【搞定Go语言】第2天6:Go语言基础之切片
  7. 快速了解K4B2G1646F-BYK0
  8. 这位博主居然说“我就是看故事也要把这知识学了”
  9. JSP停车场车位管理系统myeclipse开发oracle数据库BS模式java编程网
  10. idea自动生成bean实体对象