count()与sum()
2024-09-22 14:09:26
介绍Mysql中的count()与sum()区别 CREATE TABLE `result` (
`name` varchar(20) default NULL,
`subject` varchar(20) default NULL,
`score` tinyint(4) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 insert into result values
('张三','数学',90),
('张三','语文',50),
('张三','地理',40),
('李四','语文',55),
('李四','政治',45),
('王五','政治',30),
('赵六','语文',100),
('赵六','数学',99),
('赵六','品德',98); 要求:查询出2门及2门以上不及格者的平均成绩。
经常会用两种查询语句有两种: select name,sum(score < 60) ,avg(score) from result group by name having sum(score<60) >=2; select name ,count((score<60)!=0) as a,avg(score) from result group by name having a >=2; 两种查询的结果肯定是不一样的,肯定是第一种正确的,原因是为什么,这时你就要想了,count()函数的意义和sum函数的意义
count()函数里面的参数是列名的的时候,那么会计算有值项的次数。
Sum()函数里面的参数是列名的时候,是计算列名的值的相加,而不是有值项的总数。
对count()行数还要注意:它会计算总行数。不管你是否有值都会列入计算范围。另外一点:mysqlisam引擎很容易获得总行数的统计。查询速度变得更快
归纳:实际编程中统计总行数是经常用到的。此时使用count(*)多处可见。我很少看到有人使用列名作为参数:count(a)的情况。即使是这样使用,可能其初衷也是想统计行数。只是不知道!这样所造成的细微差异而错误使用了"列名"的形式。
最新文章
- C#中的Excel操作【1】——设置Excel单元格的内容,打开Excel文件的一种方式
- uva 10340 All in All
- python 在 for i in range() 块中改变 i 的值的效果
- mysql之 mysql 5.6不停机主从搭建(一主一从基于GTID复制)
- 《javascript 高级程序设计》笔记
- 浪潮之巅——IT产业的三大定律
- bugku web 矛盾
- Spring出现事务代理的原因
- Lesnoe Ozero 2016. BSUIR Open 2016 Finals
- MongoDB 菜鸟入门“秘籍”
- LeetCode算法题-Add Strings(Java实现)
- 20172328《程序设计与数据结构》实验四 Android程序设计报告
- .Net可扩展的单据编号生成器-SNF.CodeRule--SNF快速开发平台3.2
- Unable to open debugger port (127.0.0.1:63777): java.net.BindException ";Address
- http_build_query
- jdk1.8 HashMap源码讲解
- 等待事件对应的p1,p2,p3含义
- Android程序员学WEB前端(4)-HTML(4)-注册页面-Sublime
- Thunder团队第三周 - Scrum会议4
- java集合之深入分析ArrayList
热门文章
- [swustoj 764] 校门外的树 Plus Plus
- Linux 的档案权限与目录配置
- Bootstrap中的less基础
- [摘]selenium-ide编辑命令
- 正则表达式(来源http://deerchao.net/tutorials/regex/regex.htm)
- curl post请求
- 关于 Unity UI 中 GraphicRaycaster.Raycast 数量巨大的问题
- Clean Code &ndash; Chapter 6 Objects and Data Structures
- CodeForces 362B 	Petya and Staircases
- ARM Linux字符设备驱动程序