mysql中巧用if函式,根據平均分生成排行榜

2021-10-07 08:21:08 字數 985 閱讀 5127

最近專案中遇到乙個需求,學生家長對某個老師做了問卷調查,然後後台需要根據每個題目的分數,算出每個老師總分,以及多少個學生對老師進行了評分,進而算出平均分,以及百分率,最終確定排行榜。更多交流 join(「q_qun」,1071834648)

select teacher,total_socre,total_student,concat(

round

((total_socre/

(total_student*60)

),2)

*100

,'%'

)as prencent from

(select

teacher,

sum(if(

(question_id in(41

,42,43

,44,45

,48))

,10-item_id,0)

)as total_socre,

count

(distinct

(a.phone)

)as total_student

from

rms_captcha a,

rms_exam b

where

a.phone = b.tel

group

by teacher

)t order

by(total_socre/total_student)

desc

首先我們來看這if,sum裡面的if的含義是,如果題目id在指定的需要計算分值的裡面,那就給分值,分值的規則也就是10-item_id,如果不在就給0,這樣子分數就統計出來了。因為在目前exam表中,乙個學生的一次答題會生成很多條記錄,統計學生人數就根據學生唯一標識手機號進行去重即可計算出學生的人數。因為本次統計時基於老師為維度統計的,因此還需要根據老師分組下。子查詢就這麼多。

外圍的查詢,就是對於子查詢的統計和排序,需要注意的就是對於百分比的計算,要多留意一點。

語言 全排列 函式 巧用R中的各種排名視窗函式

前言 在sql中巧用視窗函式可以解決很多複雜的問題,視窗函式有4種函式型別 排名函式 偏移函式 聚合函式和分布函式,詳細介紹可以瀏覽 視窗函式 第一彈 視窗函式簡介 視窗函式 第二彈 排名函式和偏移函式 視窗函式 第三彈 聚合函式和分布函式 r語言中,也有與sql中一一對應的4種型別的視窗函式,除了...

mysql中的函式名 MySQL中的函式

一 數學函式 數學函式主要用於處理數字,包括整型 浮點數等。abs x 返回x的絕對值 select abs 1 返回1 ceil x ceiling x 返回大於或等於x的最小整數 select ceil 1.5 返回2 floor x 返回小於或等於x的最大整數 select floor 1.5...

php中mysql函式 php中mysql有關函式

1.mysql query 一般是用來查詢資料裡面的資料。如 username post name sql select from members where login name username result mysql query sql 以上程式是檢測資料庫中是否存在表單傳送過來的使用者名稱...