Sql server 中count() 與 sum() 的區別


一句話概括就是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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM