亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在SQL中,count(列)和count(*)之間有什么區別?

在SQL中,count(列)和count(*)之間有什么區別?

Smart貓小萌 2019-08-15 16:37:52
在SQL中,count(列)和count(*)之間有什么區別?我有以下查詢:select column_name, count(column_name)from tablegroup by column_namehaving count(column_name) > 1;會有什么區別,如果我更換了所有調用count(column_name)到count(*)?為了澄清已接受的答案(也許是我的問題),替換count(column_name)為count(*)將在結果中返回一個額外的行,其中包含a null和null列中的值計數。
查看完整描述

3 回答

?
小唯快跑啊

TA貢獻1863條經驗 獲得超2個贊

count(*)計數NULL而count(column)不是


[edit]添加了此代碼,以便人們可以運行它


create table #bla(id int,id2 int)

insert #bla values(null,null)

insert #bla values(1,null)

insert #bla values(null,1)

insert #bla values(1,null)

insert #bla values(null,1)

insert #bla values(1,null)

insert #bla values(null,null)


select count(*),count(id),count(id2)

from #bla

結果7 3 2


查看完整回答
反對 回復 2019-08-15
?
FFIVE

TA貢獻1797條經驗 獲得超6個贊

使用*和特定列之間的另一個細微差別是,在列情況下,您可以添加關鍵字DISTINCT,并將計數限制為不同的值:

select column_a, count(distinct column_b)from tablegroup by column_ahaving count(distinct column_b) > 1;


查看完整回答
反對 回復 2019-08-15
?
交互式愛情

TA貢獻1712條經驗 獲得超3個贊

另一個也許是微妙的區別是,在某些數據庫實現中,count(*)是通過查看有問題的表上的索引而不是實際的數據行來計算的。由于沒有指定特定的列,因此無需為實際的行及其值而煩惱(如果您計算了特定的列,則會如此)。允許數據庫使用索引數據可能比將其計為“實際”行要快得多。


查看完整回答
反對 回復 2019-08-15
  • 3 回答
  • 0 關注
  • 2339 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號