MySQL中的COUNT 和 SUM 函数
程序员文章站
2022-04-16 13:25:08
...
今天听到同事说一些MySQL中关于COUNT() 和 SUM() 函数的问题,下面列出来,小小的实验,SQL中的注释为返回结果。
首先是看下整个表的结构
SELECT * FROM `comment`
-- 返回整个表,这里数据一共只有七行
COUNT()
SELECT COUNT(NULL) FROM `comment`
-- 0,字段名为COUNT(NULL)
SELECT COUNT(*) FROM `comment`
-- 行数7,字段名为COUNT(*)
SELECT COUNT(id) FROM `comment`
-- 行数7,字段名为COUNT('id')
SELECT COUNT('') FROM `comment`
-- 行数7,字段名为COUNT('')
SELECT COUNT(1) FROM `comment`
-- 行数7,字段名为COUNT(1) */
SELECT COUNT(10) FROM `comment`
-- 行数7,字段名为COUNT(10)
SELECT COUNT(15) FROM `comment`
-- 行数7,字段名为COUNT(15)
SELECT COUNT('hello') FROM `comment`
-- 行数7,字段名为COUNT('hello')
结论:在COUNT函数中,表达式中的值,只要不是NULL,就一定会有值,字段名和其他值返回一样的结果
SUM()
SELECT SUM(NULL) FROM `comment`
-- 返回NULL
SELECT SUM(id) FROM `comment`
-- id的总和
SELECT SUM('') FROM `comment`
-- 返回0
SELECT SUM(content) FROM `comment`
-- 查询值为字符串的字段,返回0
SELECT SUM(*) FROM `comment`
-- 报错
SELECT SUM(1) FROM `comment`
-- 返回7
SELECT SUM(10) FROM `comment`
-- 返回70
SELECT SUM(15) FROM `comment`
-- 返回105
结论:在SUM函数中,表达式中的值为NULL时,返回结果NULL, 当值为字段时(字段属性为字符时,返回0;字段属性为数值时,返回总和),为 * 时报错,为数字时返回的结果 = (行数 * 数字 ),在下方证明。
插入一条数据:
INSERT INTO `comment` VALUES(16, 1, 'I am fanlanv', 1);
SELECT SUM(1) FROM `comment`
-- 返回8
SELECT SUM(10) FROM `comment`
-- 返回80
SELECT SUM(15) FROM `comment`
-- 返回120
想做的事,如果能做,为什么还要等到明天?
下一篇: sql提高多个sum 查询的速度
推荐阅读
-
php中删除数组的第一个元素和最后一个元素的函数
-
PHP中的MYSQL常用函数(php下操作数据库必备)
-
js中apply和Math.max()函数的问题及区别介绍
-
MySQL中datetime和timestamp的区别及使用详解
-
PHP中substr_count()函数获取子字符串出现次数的方法
-
CentOS系统中PHP和MySQL的升级方法
-
PHP中检查isset()和!empty()函数的必要性
-
Mysql注入中的outfile、dumpfile、load_file函数详解
-
Mysql5.7中使用group concat函数数据被截断的问题完美解决方法
-
对python中矩阵相加函数sum()的使用详解