Sql 计算一行中小数四舍五入到2位的值的百分比
我有一个查询,它为我提供了列中空值的百分比:Sql 计算一行中小数四舍五入到2位的值的百分比,sql,select,casting,decimal,rounding,Sql,Select,Casting,Decimal,Rounding,我有一个查询,它为我提供了列中空值的百分比: SELECT Count(*) FROM XYZ_Referrals WHERE referral_source IS NULL ) * 100.0 / ( Select Count(*) From XYZ_Referrals ) as 'referral source fields that are populated' 但是,我需要将该值四舍五入并截断到小数点后2位。以下查询循环,但不截断: SELECT
SELECT
Count(*)
FROM
XYZ_Referrals
WHERE
referral_source IS NULL
) * 100.0 / (
Select
Count(*)
From
XYZ_Referrals
) as 'referral source fields that are populated'
但是,我需要将该值四舍五入并截断到小数点后2位。以下查询循环,但不截断:
SELECT
Round
(
(
(
SELECT
Count(*)
FROM
XYZ_Referrals
WHERE
referral_source IS NULL
)
* 100.0 / Count(*)
),2,2
)
as 'referral source fields that are populated'
FROM
XYZ_Referrals
返回的值为5.60000000000
我试过投,但没有成功
SELECT
(
Cast
(
Round
(
(
(
SELECT
Count(*)
FROM
XYZ_Referrals
WHERE
referral_source IS NULL
)
* 100.0 / Count(*)
)
),2
AS DECIMAL(3,2)
)
)
as 'referral source fields that are populated'
FROM
XYZ_Referrals
非常感谢您的帮助。您的思路正确,但小数点的精度不正确:
SELECT CAST(5.600000000000 AS DECIMAL(10, 2))
这会将数字转换为10位精度,小数点后2位