COUNT()函數(shù)
COUNT函數(shù)用法:COUNT ( [ALL | DISTINCT] column | expression | *)
- ALL關(guān)鍵字指示統(tǒng)計(jì)所有值,而DISTINCT關(guān)鍵字強(qiáng)制函數(shù)僅對(duì)不同的值進(jìn)行操作。 默認(rèn)情況下,使用ALL選項(xiàng)。
- 條件表達(dá)式
- COUNT()函數(shù)中條件表達(dá)式加 OR null。例如,
SELECT COUNT(number > 200 OR null) FROM vf;
- COUNT()函數(shù)中條件表達(dá)式使用 if。例如,
SELECT COUNT(if(number > 200, 1, null)) FROM vf;
- COUNT()函數(shù)中條件表達(dá)式使用 case when。例如,
SELECT COUNT(case when number > 200 then 1 end) FROM vf;
- COUNT()函數(shù)中條件表達(dá)式加 OR null。例如,
解析:sql 語句中count()有條件的時(shí)候?yàn)槭裁匆由蟧r null?
例如count(sex= ‘男生’ or NULL)
,為什么要加上or NULL,直接count(sex=‘男生’)有什么問題嗎?不就是要找sex= '男生’的數(shù)據(jù)嗎,為什么要計(jì)算NULL的數(shù)據(jù)。
答案: 因?yàn)楫?dāng) sex不是男生時(shí) sex=‘男生’ 結(jié)果false。不是 NULL, count在值是NULL是不統(tǒng)計(jì)數(shù),(count(‘任意內(nèi)容’)都會(huì)統(tǒng)計(jì)出所有記錄數(shù),因?yàn)閏ount只有在遇見null時(shí)不計(jì)數(shù),即count(null)==0,因此前者單引號(hào)內(nèi)不管輸入什么值都會(huì)統(tǒng)計(jì)出所有記錄數(shù)),至于加上or NULL , 很像其他編程里的or運(yùn)算符,第一個(gè)表達(dá)式是true就是不執(zhí)行or后面的表達(dá)式,第一個(gè)表達(dá)式是false 執(zhí)行or后面的表達(dá)式 。當(dāng)sex不為男生時(shí),sex= ‘男生’ or NULL 的結(jié)果是NULL,Count才不會(huì)統(tǒng)計(jì)上這條記錄數(shù)
記錄自己的錯(cuò)誤:
語句:
Right:select (select count(user_id) from Users)
Error:select count(select user_id from Users)
錯(cuò)誤示例:count()里邊不能加查詢語句?。。?!文章來源:http://www.zghlxwxcb.cn/news/detail-857275.html
-- select contest_id, round(count(*)/count(select Users.user_id from Users)*100, 2) as percentage
參考文獻(xiàn):
sql—count() 中加表達(dá)式計(jì)數(shù)
count加表達(dá)式,Mysql中Count函數(shù)的正確使用!
SQL聚合函數(shù)
數(shù)據(jù)庫的高級(jí)查詢二:聚合函數(shù)(SUM、MAX,MIN,AVG,COUNT)文章來源地址http://www.zghlxwxcb.cn/news/detail-857275.html
到了這里,關(guān)于【SQL】COUNT()函數(shù) 用法詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!