mysql count(*)分組之后IFNULL無(wú)效問(wèn)題
mysql count(*)分組后IFNULL無(wú)效
因?yàn)橹坝胦racle比較多,mysql沒(méi)有經(jīng)過(guò)系統(tǒng)性學(xué)習(xí),所以這次碰到這個(gè)問(wèn)題,弄了比較久,在此記錄一下
需求
根據(jù)發(fā)票ID和單位來(lái)統(tǒng)計(jì),一個(gè)ID下掛靠多少個(gè)單位
最開(kāi)始的錯(cuò)誤語(yǔ)句
SELECT count(t.CostCenter) AS countNum FROM trip_plane_settlement t WHERE t.itineraryId = #{itineraryId} GROUP BY t.itineraryId, t.CostCenter
后臺(tái)用int來(lái)接收時(shí),如果返回空就會(huì)拋出異常,然后我就想用IFNULL()函數(shù)來(lái)實(shí)現(xiàn),如果為空時(shí)返回0,但是發(fā)現(xiàn)還是返回還是為空,后來(lái)查閱資料之后,才發(fā)現(xiàn)如果分組之后,如果查詢條件查不到數(shù)據(jù)時(shí)還是會(huì)返回null,后面嘗試過(guò) CASE WHEN 來(lái)實(shí)現(xiàn),發(fā)下還是會(huì)返回null,因?yàn)椴椴坏綌?shù)據(jù)時(shí),整個(gè)結(jié)果集都是空的,函數(shù)就不會(huì)生效。
后面就想用嵌套循環(huán)來(lái)實(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ù)庫(kù)統(tǒng)計(jì)函數(shù)COUNT的使用及說(shuō)明
- mysql?count()函數(shù)不計(jì)算null和空值問(wèn)題
- mysql數(shù)據(jù)庫(kù)之count()函數(shù)和sum()函數(shù)用法及區(qū)別說(shuō)明
- mysql一條sql查出多個(gè)條件不同的sum或count問(wèn)題
- MySQL中的count(*)?和?count(1)?區(qū)別性能對(duì)比分析
- SQL 中 COUNT 的用法示例詳解
相關(guān)文章
MySQL IS NULL空值查詢的實(shí)現(xiàn)
MySQL 提供了?IS NULL?關(guān)鍵字,用來(lái)判斷字段的值是否為空值,本文主要介紹了MySQL IS NULL空值查詢的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(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-12Redis什么是熱Key問(wèn)題以及如何解決熱Key問(wèn)題
這篇文章主要介紹了Redis什么是熱Key問(wèn)題以及如何解決熱Key問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11Ubuntu 18.04配置mysql以及配置遠(yuǎn)程連接的步驟
這篇文章主要給大家介紹了關(guān)于Ubuntu 18.04配置mysql以及配置遠(yuǎn)程連接的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(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ǔ)過(guò)程的區(qū)別解析
這篇文章主要介紹了MySQL的存儲(chǔ)函數(shù)與存儲(chǔ)過(guò)程的區(qū)別,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04詳解MYSQL的備份還原(PHP實(shí)現(xiàn))
本篇文章是對(duì)MYSQL的備份還原進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06