首先需要用到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...