欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MySQL中的COUNT 和 SUM 函数

程序员文章站 2022-04-16 13:25:08
...

今天听到同事说一些MySQL中关于COUNT() 和 SUM() 函数的问题,下面列出来,小小的实验,SQL中的注释为返回结果。

首先是看下整个表的结构

SELECT * FROM `comment` 
-- 返回整个表,这里数据一共只有七行

MySQL中的COUNT 和 SUM 函数

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);

MySQL中的COUNT 和 SUM 函数

SELECT SUM(1) FROM `comment` 
-- 返回8
SELECT SUM(10) FROM `comment` 
-- 返回80 
SELECT SUM(15) FROM `comment` 
-- 返回120


想做的事,如果能做,为什么还要等到明天?