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數(shù)據(jù)庫(kù)引擎為InnoDB的操作
這篇文章主要介紹了修改MySQL數(shù)據(jù)庫(kù)引擎為InnoDB的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12
mysql慢查詢?nèi)罩痉治龉ぞ呤褂?pt-query-digest)
這篇文章主要介紹了mysql慢查詢?nèi)罩痉治龉ぞ呤褂?pt-query-digest),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12
2022最新版MySQL 8.0.30 安裝及配置教程(小白入門(mén))
這篇文章主要介紹了2022最新版MySQL 8.0.30 安裝及配置教程,安裝過(guò)程算是比較簡(jiǎn)單的,今天給大家分享的此文比較適合mysql數(shù)據(jù)庫(kù)的小白,需要的朋友可以參考下2022-09-09
mysql如何利用binlog進(jìn)行數(shù)據(jù)恢復(fù)詳解
MySQL的binlog日志是MySQL日志中非常重要的一種日志,下面這篇文章主要給大家介紹了關(guān)于mysql如何利用binlog進(jìn)行數(shù)據(jù)恢復(fù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2018-10-10
Mysql中日期和時(shí)間函數(shù)應(yīng)用不用求人
Mysql中日期和時(shí)間函數(shù)應(yīng)用不用求人,學(xué)習(xí)mysql的朋友可以參考下。2010-11-11
MySQL需要關(guān)注的參數(shù)及狀態(tài)變量解讀
這篇文章主要介紹了MySQL需要關(guān)注的參數(shù)及狀態(tài)變量解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02
Mysql數(shù)據(jù)庫(kù)時(shí)間查詢舉例詳解
在項(xiàng)目開(kāi)發(fā)中,一些業(yè)務(wù)表字段經(jīng)常使用日期和時(shí)間類(lèi)型,而且后續(xù)還會(huì)牽涉到這類(lèi)字段的查詢,下面這篇文章主要給大家介紹了關(guān)于Mysql數(shù)據(jù)庫(kù)時(shí)間查詢的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05
mysql數(shù)據(jù)庫(kù)提權(quán)的三種方法
文介紹了MySQL數(shù)據(jù)庫(kù)的三種提權(quán)方法:UDF提權(quán)、MOF提權(quán)和啟動(dòng)項(xiàng)提權(quán),同時(shí)列出了一些常見(jiàn)數(shù)據(jù)庫(kù)及其默認(rèn)端口,下面就來(lái)介紹一下,感興趣的可以了解一下2024-09-09

