国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

COUNT(*),count(1),COUNT(ALL expression),COUNT(DISTINCT expression)

2024-07-21 02:47:42
字體:
來源:轉載
供稿:網友
COUNT(*),count(1),COUNT(ALL exPRession),COUNT(DISTINCT expression)

創(chuàng)建一個測試表

 1 IF OBJECT_ID( 'dbo.T1' , 'U' 2             )IS NOT NULL 3     BEGIN 4         DROP TABLE dbo.T1; 5     END; 6 GO 7 CREATE TABLE dbo.T1( column_1 int ,column_2 varchar(30)); 8 GO 9 10 11 INSERT INTO dbo.T1( column_1 , column_2                 )12 VALUES( 1 , '123') , ( 2 , '1234') , ( 3 , '12345');13 14 INSERT INTO dbo.T1( column_1)15 VALUES(1) , (2);16 17 INSERT INTO dbo.T1( column_2)18 VALUES( '1234');19 20 GO21 SELECT *22   FROM dbo.T1; 23 GO

使用各種count的方式對比結果(注意只是結果,不考慮性能,以及增加索引對于性能的影響

關于下面兩者性能的對比:

SQLSERVER 里SELECT COUNT(1) 和SELECT COUNT(*)哪個性能好?

1 SELECT COUNT(*)AS 'count(*)', COUNT(1)AS 'count(1)' , COUNT( column_1)AS column_1 , COUNT( DISTINCT column_1) AS column_1DISTINCT2     FROM dbo.T1;3  SELECT * FROM dbo.T1;

count(*)count(1)column_1column_1DISTINCT6653

可以看到count(*) 和count(1)在結果上是一致的,都是包含NULL值合計。

COUNT(ALL expression) 即 COUNT( column_1),為非NULL值得合計

COUNT(DISTINCT expression) 即 COUNT( DISTINCT column_1), 去除重復值,去除NULL后的合計結果

可以等同于以下寫法

1 WITH groupby_CTE( columngroup)2     AS (SELECT DISTINCT column_2 AS columngroup3            FROM dbo.T14            WHERE column_2 IS NOT NULL5            )6     SELECT COUNT( *7                 )8       FROM groupby_CTE;

MSDN 對其解釋

COUNT (Transact-SQL)COUNT(*) 返回組中的項數(shù)。 包括 NULL 值和重復項。

COUNT(ALL expression) 對組中的每一行都計算 expression 并返回非 Null 值的數(shù)量。

COUNT(DISTINCT expression) 對組中的每一行都計算 expression 并返回唯一非 Null 值的數(shù)量。

以下是在聚合數(shù)據(jù)操作后的展現(xiàn)

1 select column_1,count(column_1) as 'countcolumn_1',count(*) as 'count(*)'2 from dbo.T13 group by column_1

column_1countcolumn_1count(*)NULL01122222311

可以看到的NULL值并沒有合計。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 贺兰县| 栾川县| 怀远县| 曲阜市| 陕西省| 合肥市| 萍乡市| 广灵县| 伽师县| 中宁县| 武汉市| 东台市| 开远市| 故城县| 平潭县| 海原县| 武夷山市| 连山| 辽阳市| 始兴县| 正镶白旗| 福安市| 磐石市| 开鲁县| 石家庄市| 志丹县| 永修县| 石景山区| 临高县| 伊金霍洛旗| 吉林市| 从江县| 淮滨县| 泽州县| 岳阳县| 宜良县| 古蔺县| 佛坪县| 阳江市| 垫江县| 荆州市|