最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Mysql中count帶條件計(jì)數(shù)實(shí)例代碼

 更新時(shí)間:2023年09月10日 09:19:29   作者:lr_24353  
這篇文章主要給大家介紹了關(guān)于Mysql中count帶條件計(jì)數(shù)的相關(guān)資料,Mysql中count()函數(shù)的一般用法是統(tǒng)計(jì)字段非空的記錄數(shù),所以可以利用這個(gè)特點(diǎn)來(lái)進(jìn)行條件統(tǒng)計(jì),需要的朋友可以參考下

count 帶條件計(jì)數(shù)

mysql 統(tǒng)計(jì)條數(shù)很簡(jiǎn)單, 使用 count 函數(shù)就行,但是帶條件統(tǒng)計(jì),可能有些小伙伴跟我一樣,還有些疑問(wèn),廢話不多說(shuō) 上代碼

表中三條數(shù)據(jù)

1. count(*) 和 count(字段) :

區(qū)別:count(*) 包含 null 值的條目,count(字段) 則不包含

例如:

select count(*) from sys_user // 返回 3 條數(shù)據(jù)
select count(name) from sys_user // 返回 2數(shù)據(jù),就是將name字段為null的去除了

2.加條件count用法

例:求 age 小于 19 人數(shù)

select count(age <  19 or null) from sys_user // 返回 1條數(shù)據(jù)

條件可以隨便寫(xiě)( > 、<、=、is null 等等),但是必須加上 or null ,否則統(tǒng)計(jì)出來(lái) 就是 3 條;

其他寫(xiě)法,效果一致:

select count(if(age <  19, 1, null)) from sys_user // 返回 1條數(shù)據(jù)
select count(case when age <  19 then 1 end) from sys_user // 返回 1條數(shù)據(jù)

附:count(1)和count(*)和count(列名)的區(qū)別

1.函數(shù)說(shuō)明

  • count(1):統(tǒng)計(jì)所有的記錄(包括null)。
  • count(*):統(tǒng)計(jì)所有的記錄(包括null)。
  • count(字段):統(tǒng)計(jì)該"字段"不為null的記錄。
  • count(distinct 字段):統(tǒng)計(jì)該"字段"去重且不為null的記錄。

count(1)中的1并不是表示第一個(gè)字段,而是表示一個(gè)固定值。其實(shí)就可以想成表中有這么一個(gè)字段,這個(gè)字段就是固定值1,count(1),就是計(jì)算一共有多少個(gè)1。count(*),執(zhí)行時(shí)會(huì)把星號(hào)翻譯成字段的具體名字,效果也是一樣的,不過(guò)多了一個(gè)翻譯的動(dòng)作,比固定值的方式效率稍微低一些。

2.執(zhí)行效率

他們之間根據(jù)不同情況會(huì)有些許區(qū)別,MySQL 會(huì)對(duì)count()做優(yōu)化。(1)如果表中只有一列,則count( )效率最優(yōu)。(2)如果表有多列,且存在主鍵,count (主鍵列名)效率最優(yōu),其次是:count (1) >count( *)。(3)如果表有多列,且不存在主鍵,則count(1 )效率優(yōu)于count( *)

3.執(zhí)行過(guò)程

  • count(*)包括了所有的列,相當(dāng)于行數(shù),在統(tǒng)計(jì)結(jié)果的時(shí)候, 包括列值為NULL的行。
  • count(1)包括了忽略所有列,用1代表代碼行,在統(tǒng)計(jì)結(jié)果的時(shí)候, 包括列值為NULL的行。
  • count(列名)只包括列名那一列,在統(tǒng)計(jì)結(jié)果的時(shí)候,會(huì)忽略列值為空(這里的空不是只空字符串或者0,而是表示null)的計(jì)數(shù), 即某個(gè)字段值為NULL時(shí),不統(tǒng)計(jì)。

4.注意事項(xiàng)

阿里開(kāi)發(fā)手冊(cè)規(guī)范相關(guān)規(guī)定:

1.【強(qiáng)制】不要使用 count(列名)或 count(常量)來(lái)替代 count(),count()是 SQL92 定義的標(biāo) 準(zhǔn)統(tǒng)計(jì)行數(shù)的語(yǔ)法,跟數(shù)據(jù)庫(kù)無(wú)關(guān),跟 NULL 和非 NULL 無(wú)關(guān). 說(shuō)明:count(*)會(huì)統(tǒng)計(jì)值為 NULL 的行,而 count(列名)不會(huì)統(tǒng)計(jì)此列為 NULL 值的行.

2.【強(qiáng)制】count(distinct col) 計(jì)算該列除 NULL 之外的不重復(fù)行數(shù),注意 count(distinct col1, col2) 如果其中一列全為 NULL,那么即使另一列有不同的值,也返回為 0.

總結(jié) 

到此這篇關(guān)于Mysql中count帶條件計(jì)數(shù)的文章就介紹到這了,更多相關(guān)Mysql count帶條件計(jì)數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MYSQL 修改root密碼命令小結(jié)

    MYSQL 修改root密碼命令小結(jié)

    MYSQL 修改root密碼命令小結(jié),需要的朋友可以參考下。
    2011-10-10
  • 簡(jiǎn)單了解mysql InnoDB MyISAM相關(guān)區(qū)別

    簡(jiǎn)單了解mysql InnoDB MyISAM相關(guān)區(qū)別

    這篇文章主要介紹了簡(jiǎn)單了解mysql InnoDB MyISAM相關(guān)區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Mysql中的innoDB如何解決幻讀

    Mysql中的innoDB如何解決幻讀

    這篇文章主要介紹了Mysql中的innoDB如何解決幻讀,幻讀是指在同一個(gè)事務(wù)中,前后兩次查詢相同范圍的時(shí)候得到的結(jié)果不一致,文章將介紹InnoDB引入間隙鎖和next-key?lock機(jī)制去解決幻讀問(wèn)題,感興趣的小伙伴可以參考一下
    2022-04-04
  • 詳解mysql 使用left join添加where條件的問(wèn)題分析

    詳解mysql 使用left join添加where條件的問(wèn)題分析

    這篇文章主要介紹了詳解mysql 使用left join添加where條件的問(wèn)題分析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • MySQL修改賬號(hào)密碼方法大全(小結(jié))

    MySQL修改賬號(hào)密碼方法大全(小結(jié))

    這篇文章主要介紹了MySQL修改賬號(hào)密碼方法大全(小結(jié)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • SQL實(shí)現(xiàn)LeetCode(185.系里前三高薪水)

    SQL實(shí)現(xiàn)LeetCode(185.系里前三高薪水)

    這篇文章主要介紹了SQL實(shí)現(xiàn)LeetCode(185.系里前三高薪水),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • MySQL基礎(chǔ)學(xué)習(xí)之約束詳解

    MySQL基礎(chǔ)學(xué)習(xí)之約束詳解

    約束是作用于表中字段上的規(guī)則,用于限制儲(chǔ)存在表中的數(shù)據(jù),這篇文章主要為大家介紹了MySQL中約束的案例以及外鍵約束的展示與刪除,需要的可以參考一下
    2023-07-07
  • linux 之centos7搭建mysql5.7.29的詳細(xì)過(guò)程

    linux 之centos7搭建mysql5.7.29的詳細(xì)過(guò)程

    這篇文章主要介紹了linux 之centos7搭建mysql5.7.29的詳細(xì)過(guò)程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • Mysql中的默認(rèn)存儲(chǔ)引擎

    Mysql中的默認(rèn)存儲(chǔ)引擎

    這篇文章主要介紹了Mysql中的默認(rèn)存儲(chǔ)引擎方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • MySQL回表查詢的實(shí)現(xiàn)示例

    MySQL回表查詢的實(shí)現(xiàn)示例

    回表查詢是 MySQL 數(shù)據(jù)庫(kù)中一種常見(jiàn)的查詢操作,主要出現(xiàn)在使用索引進(jìn)行查詢的場(chǎng)景中,本文就來(lái)介紹一下如何實(shí)現(xiàn),感興趣的可以了解一下
    2026-01-01

最新評(píng)論

桐城市| 井研县| 沙洋县| 宜丰县| 荣昌县| 盈江县| 镶黄旗| 大连市| 闵行区| 巴彦县| 睢宁县| 鄂托克前旗| 余江县| 松阳县| 敦化市| 韶关市| 罗源县| 鄂托克前旗| 灵璧县| SHOW| 疏附县| 沙湾县| 马尔康县| 香格里拉县| 湘潭县| 丰顺县| 崇明县| 黄平县| 万安县| 景泰县| 鹤庆县| 和龙市| 巫溪县| 大同市| 龙口市| 大连市| 江陵县| 叶城县| 连江县| 新化县| 洛浦县|