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

mysql一條sql查出多個(gè)條件不同的sum或count問題

 更新時(shí)間:2023年05月29日 09:50:02   作者:碼農(nóng)王山  
這篇文章主要介紹了mysql一條sql查出多個(gè)條件不同的sum或count問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

一條sql查出多個(gè)條件不同的sum或count

最近做java后臺(tái)遇到很多問題記錄一下,有個(gè)需求是在一條sql中同時(shí)統(tǒng)計(jì)到幾條條件不一樣的sql或count,就用了子查詢,希望能幫助到需要的朋友,上代碼和效果圖:

select?
sum(pzgwjscd) as allJsgm,sbjh.nd as nd,?
( select sum(pzgwjscd) from fm_jh_ws_ptgw ptgw left join fm_sb_jh sbjh on ptgw.sbid = sbjh.id?
where substring(ptgw.xzqh,1,4) LIKE CONCAT ('3301') and ptgw.zt != 0 and sbjh.nd=2017 ) as hzJsgm,?
( select sum(pzgwjscd) from fm_jh_ws_ptgw ptgw left join fm_sb_jh sbjh on ptgw.sbid = sbjh.id?
where substring(ptgw.xzqh,1,4) LIKE CONCAT ('3303') and ptgw.zt != 0 and sbjh.nd=2017) as wzJsgm,?
( select sum(pzgwjscd) from fm_jh_ws_ptgw ptgw left join fm_sb_jh sbjh on ptgw.sbid = sbjh.id?
where substring(ptgw.xzqh,1,4) LIKE CONCAT ('3304') and ptgw.zt != 0 and sbjh.nd=2017 ) as jxJsgm,?
( select sum(pzgwjscd) from fm_jh_ws_ptgw ptgw left join fm_sb_jh sbjh on ptgw.sbid = sbjh.id?
where substring(ptgw.xzqh,1,4) LIKE CONCAT ('3305') and ptgw.zt != 0 and sbjh.nd=2017) as huzJsgm,?
( select sum(pzgwjscd) from fm_jh_ws_ptgw ptgw left join fm_sb_jh sbjh on ptgw.sbid = sbjh.id?
where substring(ptgw.xzqh,1,4) LIKE CONCAT ('3306') and ptgw.zt != 0 and sbjh.nd=2017 ) as sxJsgm,?
( select sum(pzgwjscd) from fm_jh_ws_ptgw ptgw left join fm_sb_jh sbjh on ptgw.sbid = sbjh.id?
where substring(ptgw.xzqh,1,4) LIKE CONCAT ('3307') and ptgw.zt != 0 and sbjh.nd=2017 ) as jhJsgm,?
( select sum(pzgwjscd) from fm_jh_ws_ptgw ptgw left join fm_sb_jh sbjh on ptgw.sbid = sbjh.id?
where substring(ptgw.xzqh,1,4) LIKE CONCAT ('3308') and ptgw.zt != 0 and sbjh.nd=2017 ) as qzJsgm,?
( select sum(pzgwjscd) from fm_jh_ws_ptgw ptgw left join fm_sb_jh sbjh on ptgw.sbid = sbjh.id?
where substring(ptgw.xzqh,1,4) LIKE CONCAT ('3309') and ptgw.zt != 0 and sbjh.nd=2017 ) as zsJsgm,?
( select sum(pzgwjscd) from fm_jh_ws_ptgw ptgw left join fm_sb_jh sbjh on ptgw.sbid = sbjh.id?
where substring(ptgw.xzqh,1,4) LIKE CONCAT ('3310') and ptgw.zt != 0 and sbjh.nd=2017 ) as tzJsgm,?
( select sum(pzgwjscd) from fm_jh_ws_ptgw ptgw left join fm_sb_jh sbjh on ptgw.sbid = sbjh.id?
where substring(ptgw.xzqh,1,4) LIKE CONCAT ('3311') and ptgw.zt != 0 and sbjh.nd=2017 ) as lsJsgm?
from fm_jh_ws_ptgw ptgw?
left join fm_sb_jh sbjh on ptgw.sbid = sbjh.id?
where 1=1 and ptgw.zt != 0 and sbjh.nd=2017?

數(shù)據(jù)庫(kù)表

查詢結(jié)果:

Sql根據(jù)不同條件統(tǒng)計(jì)總數(shù)

經(jīng)常會(huì)遇到根據(jù)不同的條件統(tǒng)計(jì)總數(shù)的問題,一般有兩種寫法:count和sum都可以

數(shù)據(jù)準(zhǔn)備:

方法一 :Count

代碼:

SELECT
	COUNT(
		CASE
		WHEN age > 20
		AND age < 25 THEN
			1
		ELSE
			NULL
		END
	) AS cnt0,
	COUNT(
		CASE
		WHEN age >= 25
		AND age < 30 THEN
			1
		ELSE
			NULL
		END
	) AS cnt1
FROM
	USER;

結(jié)果:

方法二:sum

代碼:

SELECT
	SUM(
		CASE
		WHEN age > 20
		AND age < 25 THEN
			1
		ELSE
			0
		END
	) AS cnt0,
	SUM(
		CASE
		WHEN age >= 25
		AND age < 30 THEN
			1
		ELSE
			0
		END
	) AS cnt1
FROM
	USER;

結(jié)果:

當(dāng)然也可以和count代碼一樣ELSE后面也寫為NULL

SELECT
	SUM(
		CASE
		WHEN age > 20
		AND age < 25 THEN
			1
		ELSE
			NULL
		END
	) AS cnt0,
	SUM(
		CASE
		WHEN age >= 25
		AND age < 30 THEN
			1
		ELSE
			NULL
		END
	) AS cnt1
FROM
	USER;

后記

其實(shí)原理很簡(jiǎn)單,count統(tǒng)計(jì)的時(shí)候有滿足條件的就加1,沒有滿足的變?yōu)镹ULL,我們知道聚合函數(shù)統(tǒng)計(jì)的時(shí)候是忽略null值的;而sum原理和coun相似,不過ELSE后面可以是0或者NULL。

總結(jié)

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

相關(guān)文章

  • MySQL存儲(chǔ)過程中變量的定義以及應(yīng)用詳解

    MySQL存儲(chǔ)過程中變量的定義以及應(yīng)用詳解

    MySQL變量定義和應(yīng)用是我們經(jīng)常會(huì)遇到的問題,下面這篇文章主要給大家介紹了關(guān)于MySQL存儲(chǔ)過程中變量的定義以及應(yīng)用的相關(guān)資料,文章通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • MySQL主鍵生成的四種方式及對(duì)比詳解

    MySQL主鍵生成的四種方式及對(duì)比詳解

    在數(shù)據(jù)庫(kù)設(shè)計(jì)中,主鍵(Primary Key)的選擇至關(guān)重要,它不僅是數(shù)據(jù)行的唯一標(biāo)識(shí),還直接影響查詢效率、數(shù)據(jù)存儲(chǔ)甚至系統(tǒng)架構(gòu)的擴(kuò)展性,本文給大家分析了常見四種主鍵ID生成的方式,需要的朋友可以參考下
    2025-03-03
  • 如何解決MySQL?this?is?incompatible?with?sql_mode=only_full_group_by問題

    如何解決MySQL?this?is?incompatible?with?sql_mode=only_full_

    MySQL的ONLY_FULL_GROUP_BY模式要求在使用GROUP?BY時(shí),SELECT語(yǔ)句中引用的所有列必須在GROUP?BY子句中明確指定,或者是聚合函數(shù)的一部分,本文提供了修改SQL語(yǔ)句、使用聚合函數(shù)、禁用ONLY_FULL_GROUP_BY等解決方法,并強(qiáng)調(diào)了在禁用該模式時(shí)應(yīng)評(píng)估其影響
    2024-11-11
  • 如何使用mysql語(yǔ)句進(jìn)行多表聯(lián)查(以三個(gè)表為例)

    如何使用mysql語(yǔ)句進(jìn)行多表聯(lián)查(以三個(gè)表為例)

    這篇文章主要介紹了如何使用mysql語(yǔ)句進(jìn)行多表聯(lián)查(以三個(gè)表為例),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • CentOS7環(huán)境下安裝MySQL5.5數(shù)據(jù)庫(kù)

    CentOS7環(huán)境下安裝MySQL5.5數(shù)據(jù)庫(kù)

    大家好,本篇文章主要講的是CentOS7環(huán)境下安裝MySQL5.5數(shù)據(jù)庫(kù),感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • mysql多實(shí)例部署實(shí)例教程

    mysql多實(shí)例部署實(shí)例教程

    這篇文章主要介紹了mysql多實(shí)例部署,主要包括軟件下載、配置用戶并解壓二進(jìn)制程序至/usr/local下及創(chuàng)建各實(shí)例數(shù)據(jù)存放的目錄,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • MySQL問答系列之如何避免ibdata1文件大小暴漲

    MySQL問答系列之如何避免ibdata1文件大小暴漲

    MySql innodb如果是共享表空間,ibdata1文件會(huì)越來越大,所以下面這篇文章主要給大家介紹了關(guān)于MySQL問答系列之如何避免ibdata1文件大小暴漲的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2018-09-09
  • MySQL存儲(chǔ)引擎InnoDB的配置與使用的講解

    MySQL存儲(chǔ)引擎InnoDB的配置與使用的講解

    今天小編就為大家分享一篇關(guān)于MySQL存儲(chǔ)引擎InnoDB的配置與使用的講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • 一次Mysql死鎖排查過程的全紀(jì)錄

    一次Mysql死鎖排查過程的全紀(jì)錄

    在測(cè)試環(huán)境測(cè)試給用戶并發(fā)發(fā)送卡券時(shí),出現(xiàn)了死鎖,通過查找相關(guān)的資料解決了這個(gè),所以想著總結(jié)出來,所以下面這篇文章主要是關(guān)于一次Mysql死鎖排查過程的全紀(jì)錄,需要的朋友可以參考下,希望大家從中能有所幫助。
    2017-02-02
  • MySQL命令行方式進(jìn)行數(shù)據(jù)備份與恢復(fù)

    MySQL命令行方式進(jìn)行數(shù)據(jù)備份與恢復(fù)

    本文主要介紹了MySQL命令行方式進(jìn)行數(shù)據(jù)備份與恢復(fù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08

最新評(píng)論