mysql count(*)分組之后IFNULL無效問題
mysql count(*)分組后IFNULL無效
因?yàn)橹坝胦racle比較多,mysql沒有經(jīng)過系統(tǒng)性學(xué)習(xí),所以這次碰到這個(gè)問題,弄了比較久,在此記錄一下
需求
根據(jù)發(fā)票ID和單位來統(tǒng)計(jì),一個(gè)ID下掛靠多少個(gè)單位
最開始的錯(cuò)誤語句
SELECT count(t.CostCenter) AS countNum FROM trip_plane_settlement t WHERE t.itineraryId = #{itineraryId} GROUP BY t.itineraryId, t.CostCenter
后臺(tái)用int來接收時(shí),如果返回空就會(huì)拋出異常,然后我就想用IFNULL()函數(shù)來實(shí)現(xiàn),如果為空時(shí)返回0,但是發(fā)現(xiàn)還是返回還是為空,后來查閱資料之后,才發(fā)現(xiàn)如果分組之后,如果查詢條件查不到數(shù)據(jù)時(shí)還是會(huì)返回null,后面嘗試過 CASE WHEN 來實(shí)現(xiàn),發(fā)下還是會(huì)返回null,因?yàn)椴椴坏綌?shù)據(jù)時(shí),整個(gè)結(jié)果集都是空的,函數(shù)就不會(huì)生效。
后面就想用嵌套循環(huán)來實(shí)現(xiàn)試試,發(fā)現(xiàn)果然可以。
解決代碼
SELECT IFNULL(count(*), 0) AS countNum FROM ( SELECT count(t.CostCenter) AS countNum, t.itineraryId, t.CostCenter FROM trip_plane_settlement t GROUP BY t.itineraryId, t.CostCenter ) t1 WHERE t1.itineraryId = #{itineraryId}
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Sql根據(jù)不同條件統(tǒng)計(jì)總數(shù)的方法(count和sum)
- SQL中count(1)、count(*)?與?count(列名)的區(qū)別詳細(xì)解釋
- MySQL數(shù)據(jù)庫統(tǒng)計(jì)函數(shù)COUNT的使用及說明
- mysql?count()函數(shù)不計(jì)算null和空值問題
- mysql數(shù)據(jù)庫之count()函數(shù)和sum()函數(shù)用法及區(qū)別說明
- mysql一條sql查出多個(gè)條件不同的sum或count問題
- MySQL中的count(*)?和?count(1)?區(qū)別性能對(duì)比分析
- SQL 中 COUNT 的用法示例詳解
相關(guān)文章
MySQL IS NULL空值查詢的實(shí)現(xiàn)
MySQL 提供了?IS NULL?關(guān)鍵字,用來判斷字段的值是否為空值,本文主要介紹了MySQL IS NULL空值查詢的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-08-08關(guān)于mysql innodb count(*)速度慢的解決辦法
innodb引擎在統(tǒng)計(jì)方面和myisam是不同的,Myisam內(nèi)置了一個(gè)計(jì)數(shù)器,所以在使用 select count(*) from table 的時(shí)候,直接可以從計(jì)數(shù)器中取出數(shù)據(jù)。而innodb必須全表掃描一次方能得到總的數(shù)量2012-12-12Ubuntu 18.04配置mysql以及配置遠(yuǎn)程連接的步驟
這篇文章主要給大家介紹了關(guān)于Ubuntu 18.04配置mysql以及配置遠(yuǎn)程連接的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-07-07MySQL安全配置向?qū)ysql_secure_installation詳解
這篇文章主要介紹了MySQL安全配置向?qū)ysql_secure_installation各項(xiàng)配置的含義,并依據(jù)經(jīng)驗(yàn)給予一了一些建議,需要的朋友可以參考下2014-03-03MySQL的存儲(chǔ)函數(shù)與存儲(chǔ)過程的區(qū)別解析
這篇文章主要介紹了MySQL的存儲(chǔ)函數(shù)與存儲(chǔ)過程的區(qū)別,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04詳解MYSQL的備份還原(PHP實(shí)現(xiàn))
本篇文章是對(duì)MYSQL的備份還原進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06