MySQL SUM()帶條件的求和方法與多條件的求和方法解讀
SUM()帶條件的求和方法與多條件的求和方法
單一的求和
select sum(value) as value from table where user_id = 1 and type = 6 and type_son = 2
value 為求和的字段。
as 后面是 sum 求和后給它一個名稱。
SQL語句中嵌套語句多條件求和
select? (select sum(value) from table where type = 6 and type_son = 1) as xj0, (select sum(value) from table where type = 6 and type_son = 2) as xj1, (select sum(value) from table where type = 3 and type_son = 3) as xj2, (select sum(value) from table where type = 4 and type_son = 3) as xj3 from table where user_id = 1 limit 0,1
as 后面是 sum 求和后給它一個名稱,這樣就不會沖突。
與第二個一樣
但是不采取語句嵌套的方式求和,而是使用 sum 判斷求和。
select? sum(IF(type = 6 and type_son = 1,value,NULL)) as xj0, sum(IF(type = 6 and type_son = 2,value,NULL)) as xj1, sum(IF(type = 3 and type_son = 0,value,NULL)) as xj2, sum(IF(type = 4 and type_son = 3,value,NULL)) as xj3 from table where user_id = 1
sum(IF('條件判斷','求和的字段','NULL不計算')) as '別名'
我覺得第三個的方式比前面兩個的方式要好。
YII 2.0 使用 SUM 求和
$v['alls_bonus'] = AccountingLog::find() ? ? ? ? ->select([" ? ? ? ? ? ? sum( IF(type = 6 and type_son = 1,value,NULL) ) as xj0, ? ? ? ? ? ? sum( IF(type = 6 and type_son = 4,value,NULL) ) as xj1, ? ? ? ? ? ? sum( IF(type = 8 and type_son = 4,value,NULL) ) as xj2,? ? ? ? ? ? ? sum( IF(type = 3 and type_son = 1,value,NULL) ) as xj3 ? ? ? ? "]) ? ? ? ? ->where(['user_id'=>1]) ? ? ? ? ->asArray() ? ? ? ? ->one();
注意要在 select 里面加 ["sum........"],否則會報錯
MySQL小知識:SUM函數(shù)根據(jù)條件求和
普通求和
select sum(is_img) ?is_img_sum from ec_assessment
根據(jù)條件求和
select sum(if(is_img=1,1,0)) asis_img_sum from ec_assessment
白話注釋:sum(如果is_img=1,那么就+1,否則就+0)
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
使用Mysql5.x以上版本出現(xiàn)報錯#1929 Incorrect datetime value: '''''''' f
我的MySQL安裝后,保存刪除表數(shù)據(jù)總是出現(xiàn)#1929 Incorrect datetime value: '' for column 'createtime' 的報錯提醒,導致不能刪除表里數(shù)據(jù)。下面小編給大家分析原因及解決辦法,需要的朋友可以參考下2017-01-01更改MySQL數(shù)據(jù)庫的編碼為utf8mb4問題
這篇文章主要介紹了更改MySQL數(shù)據(jù)庫的編碼為utf8mb4問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-11-11MySQL命令提示符出現(xiàn)輸入錯誤時如何修改前面的命令
本文主要介紹了MySQL命令提示符出現(xiàn)輸入錯誤時如何修改前面的命令,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-10-10mysql-8.0.16 winx64的最新安裝教程圖文詳解
最近剛學習數(shù)據(jù)庫,首先是了解數(shù)據(jù)庫是什么,數(shù)據(jù)庫、數(shù)據(jù)表的基本操作,這就面臨了一個問題,mysql的安裝,我這里下載的是64位的,基于Windows的,需要的朋友可以參考下2019-06-06Mysql優(yōu)化之Zabbix分區(qū)優(yōu)化
這篇文章主要介紹了Mysql優(yōu)化中Zabbix分區(qū)優(yōu)化的詳細方法和優(yōu)缺點分析,一起學習下。2017-11-11mysql創(chuàng)建的外鍵無法保存的原因以及處理辦法
這篇文章主要介紹了mysql創(chuàng)建的外鍵無法保存的原因以及處理辦法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09