一句話概括就是Sum(列) 是求和,把所有列的值進行彙總求和;COUNT(列) 是行數彙總,只要列的值不為Null,就會增加1; 舉個例子說明下: --創建臨時表結構 CREATE TABLE TempTB ( ID int , Name varchar(20), Price Int ) --寫入示 ...
一句話概括就是Sum(列) 是求和,把所有列的值進行彙總求和;
COUNT(列) 是行數彙總,只要列的值不為Null,就會增加1;
舉個例子說明下:
--創建臨時表結構 CREATE TABLE TempTB ( ID int , Name varchar(20), Price Int ) --寫入示例數據 INSERT INTO TempTB values(1,'蘋果',10); INSERT INTO TempTB values(2,null,35); INSERT INTO TempTB values(3,'橘子',18); INSERT INTO TempTB values(null,null,null);View Code
--查看所有數據
SELECT * FROM TempTB
看下麵彙總結果:
SELECT COUNT(Price) as '總行數',SUM(Price) as '求和' FROM TempTB
在使用Count(列) 的時候,需要註意,只有當列不為Null的時候,行數才會加1;否則彙總行數,上面的結果也可以看出,第四行的價格為Null,所以行數統計只有3;
但是有個例外,就是count(*),在不指定列的情況下,即使此行中所有的列都是Null值,在彙總行數時仍然會+1 ;
比如:
SELECT COUNT(*),COUNT(ID) FROM TempTB
參考:
https://my.oschina.net/u/3497902/blog/2208655
https://www.cnblogs.com/CareySon/p/DifferenceBetweenCountStarAndCount1.html#!comments
https://www.cnblogs.com/yjd_hycf_space/p/9985393.html