SQL sever 查詢及格率

2021-10-03 21:31:24 字數 1706 閱讀 6272

首先需要用到cast函式或者round函式

cast (expression as data_type)

引數說明:

expression:任何有效的sqserver表示式。

as:用於分隔兩個引數,在as之前的是要處理的資料,在as之後是要轉換的資料型別。

data_type:目標系統所提供的資料型別,包括bigint和sql_variant,不能使用使用者定義的資料型別。

使用cast函式進行資料型別轉換時,在下列情況下能夠被接受:

(1)兩個表示式的資料型別完全相同。

(2)兩個表示式可隱性轉換。

(3)必須顯式轉換資料型別。

print cast(

"123"

asint

)--輸出 123

create

table score --建立表score

(學號 nchar(10

)not

null

,課程名稱 nchar(10

)not

null

,成績 int

notnull

)insert

into score --新增資料

values

('01'

,'語文',90

),('01'

,'數學',48

),('02'

,'語文',76

),('02'

,'數學',56

),('03'

,'語文',59

),('03'

,'數學',78

)select 課程名稱,

max(成績) 最高成績,

min(成績) 最低成績,

cast(

cast(

(sum

(case

when 成=

60then

1else

0end)*

100.0

/count

(學號)

*1.0)as

float

)as nvarchar(10)

)+'%' 及格率

from score

group

by 課程名稱

或者使用round函式保留小數點後幾位

select 課程名稱,

max(成績) 最高成績,

min(成績) 最低成績,

cast(

round

(cast(

sum(

case

when 成

60then

1else

0end)as

float

)/cast(

count(*

)asfloat)*

100,2)

as nvarchar(10)

)+'%' 及格率

from score

group

by 課程名稱

sqlserver 統計及格率

id sid sjname res 1 1 數學 80 2 1 數學 50 3 2 英語 61 4 2 英語 59 5 3 語文 58 6 3 語文 58 7 1 數學 81 id是學生id sid 老師 sjname 科目 res 分數 最後要求結果是 老師 總人數 及格人數 及格率 1 3 2 ...

1044 不及格率 ZZULIOJ

題目描述 輸入n和n個學生成績 實數 輸出不及格率。輸入輸入的第一行是乙個整數n,第二行是n個實數,用空格隔開。輸出輸出乙個實數,表示不及格率,結果保留2位小數,單獨佔一行。樣例輸入 copy 898 45 86 79 56 75 90 70 樣例輸出 copy 0.25 提示 注意,不及格率為0時...

ZZULIOJ 1044 不及格率

題目描述 輸入n和n個學生成績 實數 輸出不及格率。輸入 輸入的第一行是乙個整數n,第二行是n個實數,用空格隔開。輸出 輸出乙個實數,表示不及格率,結果保留2位小數,單獨佔一行。樣例輸入 8 9845 8679 5675 9070樣例輸出 0.25本題是對迴圈語句的考察,對迴圈語句的強化,可以明確n...