在同乙個sql語句中寫不同條件的Count數量

2021-06-06 17:04:44 字數 1730 閱讀 8455

**

其實有count很難實現

可以用sum 去實現它

例子如下

select xy, sum(case when jw_cljgh=1 then 1 else 0 end) as 留級,sum(case when jw_cljgh=2 then 1 else 0 end) as 復學 from xjgl,bjsjk where xjgl.bh=bjsjk.bh group by xy

所用到的表

表名: xjgl

概要說明:

學生違紀、異動資訊表

主鍵:(xsid、sj、jw_cljgh)

候選碼:(xh、sj、jw_cljgh)

副鍵/外來鍵:

欄位名資料型別

key能否為空

中文名稱

資料**

xsid

int(4

) 不能

學生標識號 xh

varchar(10) 不能

學號學號第1-2位為年級,3-4位為專業,第5位為層次(1研究生、2普通本科、3普通專科、4成教本科、5成教專科、6成教專公升本、7成教高公升專、8國際學院、9專公升本),第6位為班級,7-9為序列號。一般學號的前6位為班號(有學籍異動的學生除外)。 xm

varchar(24) 姓名

xnvarchar(4) 不能

年度2008、2009等 xq

int不能 學期

1、2、3、4

bhvarchar(8)

當前所在班號 sj

datetime(8) 不能

時間違紀或異動下文時間

shij

varchar(1024) 事件

jw_cljgh

varchar(2) 不能

處理結果編號

01:休學 02:復學 03:轉入 04:轉出 05:留級 06:保留學籍 07:退學 08:停學 09:勸其退學 10:自動退學11:死亡 12:警告處分13:記過處分 14:記大過處分 15:留校察看 16:開除學籍 17:勒令退學

cljg

varchar(50)

處理結果

cldw

varchar(30)

處理單位

表名: 班級資訊表(bjsjk)

概要說明:存放班級相關資訊 主鍵

副鍵/外來鍵

欄位名資料型別

key能否為空

中文名稱

資料** id

int(4) y

not 表

id 唯一

bh varchar(10)

not班級編號

bjmc

varchar(50)

班級名稱 xy

varchar(20)

所屬單位名稱

skxq

varchar(100)

上課校區 1:

中心校區

2:咸安校區

bjrs

int(4)

班級人數 xz

int(1) 學制

3,4,5,6

jw_xybh

varchar(1)

學院編號

部門資訊表

sszybh

varchar(10)

所屬專業編號

最後執行的結果

類似留級     復學

醫學院              104     4

計算機學院          5       35

在同乙個sql語句中,統計不同條件的Count數量

前幾天幫同事優化了個sql,原寫法使用多個子查詢這裡不再重現了,大家都遇到過這樣一種情況,在專案後期的維護中,修改別人的sql 超過30行的語句,多層子查詢,讀起來很坑,時間久的專案伴隨著人員的流通,你可能就不知道原作者寫這一堆的sql是幹什麼用的,當然碰到部分有注釋習慣的朋友還是好點的,過長的sq...

同乙個TextView,不同顏色,不同字型大小設定

開發中經常會遇到同乙個textview需要顯示不同顏色,不同字型大小的文字。通過spannablestringbuilder 可以很容易的實現這兩個功能。以下是乙個自定義的spannableutils public class spannableutils spannablestringbuilde...

sql 同乙個字段按照不同條件更新字段值

專案中用到sql更新乙個欄位的值,同乙個字段根據不同條件來更新不同的值,記錄一下,也希望可以幫到其他人。公式 update 表名 set 字段 case when 條件1 then 值1 when 條件2 then 值2 else 預設值3 end例子 update sys anchor set i...