欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mysql數(shù)據(jù)庫之count()函數(shù)和sum()函數(shù)用法及區(qū)別說明

 更新時(shí)間:2023年06月19日 10:56:36   作者:white_ice  
這篇文章主要介紹了mysql數(shù)據(jù)庫之count()函數(shù)和sum()函數(shù)用法及區(qū)別說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

mysql之count()和sum()用法及區(qū)別

1、mysql 數(shù)據(jù)庫中 count() 函數(shù)是統(tǒng)計(jì)查詢結(jié)果中的行數(shù),例如我們有下表 user_auth

使用 count() 函數(shù)來查詢結(jié)果個(gè)數(shù),使用如下查詢:

mysql > select count(*) from user_auth ;? ?

注意的是,count 會(huì)忽略掉 NULL 的結(jié)果, 所以 count(字段名) 這樣使用的話,如果字段中包含為null的結(jié)果,將導(dǎo)致查詢結(jié)果不準(zhǔn)確,我們將表中數(shù)據(jù)更改如下:

此時(shí)查詢:

mysql > select count(user_id) from user_auth;

結(jié)果如下:

2、mysql sum() 函數(shù)用于計(jì)算某一字段中所有行的數(shù)值之和( sum 求和時(shí)會(huì)對(duì) null 進(jìn)行過濾,不計(jì)算),例如如下查詢:

mysql > select sum(user_id) from user_auth; 

結(jié)果如下:

另外也能使用 sum(條件) 進(jìn)行對(duì)符合條件的結(jié)果行數(shù)進(jìn)行求和,如下查詢:

mysql > select sum(user_id is null),sum(aid = 1) from user_auth; 

結(jié)果如下:

需要注意的是,如果在沒有返回行中使用 sum() 函數(shù),sum 函數(shù)的返回值為 null,不是 0,例:

mysql > select sum(user_id) from user_auth where id not in (2,4,6);

結(jié)果如下:

此時(shí)使用JDBC或者一些第三方框架進(jìn)行映射時(shí)就會(huì)報(bào)錯(cuò),

解決辦法是

使用IFNULL(sum(user_id),0) 或者 COALESCE(sum(user_id),0) 進(jìn)行結(jié)果的轉(zhuǎn)換。

mysql中sum()和count()函數(shù)按條件統(tǒng)計(jì)數(shù)據(jù)

sum()函數(shù)

一般求和

select sum(money) from user group by id;

按條件求和 (對(duì)所有金額大于100的數(shù)據(jù)進(jìn)行求和)

select sum(if(money>=100,money,0)) from user group by id;

聚合函數(shù)中如果想?yún)R總某一類數(shù)據(jù)的數(shù)量,可以在括號(hào)中增加條件:

sum(case when 字段>0 then 1 else 0 end) as 字段

count()函數(shù)

要注意的是:count(case when 字段>0 then 1 else 0 end) as 字段,這樣寫的話

count函數(shù)不管記錄內(nèi)容是0或1,它的作用只是計(jì)算記錄數(shù),計(jì)算出來的是0和1的全部次數(shù),如果你要計(jì)算次數(shù),用sum(case when 字段>0 then 1 else 0 end) as 字段

或者你用 count(case when 字段>0 then 1 else null end) as 字段 這種寫法

基本原理是 使用了數(shù)據(jù)庫count(null)時(shí)返回的是0 ,count(非null)返回是1

SQL的執(zhí)行順序

  • 第一步:執(zhí)行FROM
  • 第二步:WHERE條件過濾
  • 第三步:GROUP BY分組
  • 第四步:執(zhí)行SELECT投影列
  • 第五步:HAVING條件過濾
  • 第六步:執(zhí)行ORDER BY 排序

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • mysql 5.7.12 winx64安裝配置方法圖文教程

    mysql 5.7.12 winx64安裝配置方法圖文教程

    這篇文章主要為大家分享了mysql 5.7.12winx64安裝配置方法圖文教程,感興趣的朋友可以參考一下
    2016-05-05
  • Mysql使用索引的正確方法及索引原理詳解

    Mysql使用索引的正確方法及索引原理詳解

    這篇文章主要給大家介紹了關(guān)于Mysql使用索引的正確方法及索引原理的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用mysql具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-05-05
  • MySQL億級(jí)數(shù)據(jù)平滑遷移雙寫方案實(shí)戰(zhàn)

    MySQL億級(jí)數(shù)據(jù)平滑遷移雙寫方案實(shí)戰(zhàn)

    預(yù)約業(yè)務(wù)與其他業(yè)務(wù)數(shù)據(jù)表存儲(chǔ)在同一個(gè)數(shù)據(jù)庫,當(dāng)其他業(yè)務(wù)出現(xiàn)慢SQL等異常時(shí),會(huì)影響到預(yù)約業(yè)務(wù),為了提高系統(tǒng)穩(wěn)定性和數(shù)據(jù)隔離性,需要將預(yù)約數(shù)據(jù)表從原來的數(shù)據(jù)庫中遷移出來,單獨(dú)建立數(shù)據(jù)庫,涉及到的讀寫場(chǎng)景多,改造成本大,采用 Mybatis插件實(shí)現(xiàn)遷移所需的雙寫等功能
    2024-08-08
  • Mysql常用命令匯總

    Mysql常用命令匯總

    這篇文章主要介紹了Mysql常用命令,都是mysql數(shù)據(jù)庫日常最基本的操作命令,感興趣的小伙伴們可以參考一下
    2015-11-11
  • Mysql一對(duì)多輕松實(shí)現(xiàn)追蹤歷史首條記錄

    Mysql一對(duì)多輕松實(shí)現(xiàn)追蹤歷史首條記錄

    本文介紹了在數(shù)據(jù)庫中處理一對(duì)多關(guān)系時(shí),如何使用JOIN和WHERE子句來找到每個(gè)主表記錄對(duì)應(yīng)的子表中特定記錄(例如時(shí)間最早的記錄),通過將B表與自身進(jìn)行比較并使用MIN()函數(shù),可以精確匹配到所需記錄
    2024-12-12
  • mysqlhotcopy 正則使用小技巧

    mysqlhotcopy 正則使用小技巧

    mysqlhotcopy 是MySQL的熱備工具,詳細(xì)請(qǐng)看手冊(cè) ,為了安全起見我們給熱備分配個(gè)用戶
    2011-08-08
  • Mysql一些復(fù)雜的sql語句(查詢與刪除重復(fù)的行)

    Mysql一些復(fù)雜的sql語句(查詢與刪除重復(fù)的行)

    這篇文章主要介紹了Mysql一些復(fù)雜的sql語句(查詢與刪除重復(fù)的行),需要的朋友可以參考下
    2017-05-05
  • 詳細(xì)分析MySQL主從復(fù)制

    詳細(xì)分析MySQL主從復(fù)制

    這篇文章主要介紹了MySQL主從復(fù)制的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)MySQL,感興趣的朋友可以了解下
    2020-08-08
  • MySQL自增ID用完的幾種解決方案

    MySQL自增ID用完的幾種解決方案

    MySQL的自增ID(AUTO_INCREMENT)用完之后,會(huì)出現(xiàn)重復(fù)ID的問題,那么如何解決這個(gè)問題呢,接下本文就給大家介紹MySQL自增ID用完的幾種解決方案,需要的朋友可以參考下
    2023-07-07
  • linux下安裝升級(jí)mysql到新版本(5.1-5.7)

    linux下安裝升級(jí)mysql到新版本(5.1-5.7)

    這篇文章主要介紹了linux下安裝升級(jí)mysql到新版本(5.1-5.7),需要的朋友可以參考下
    2016-03-03

最新評(píng)論