1. CAST(param AS FLOAT) : 强制转型
-- 示例脚本,计算男女比
SELECT COUNT(*),(SELECT COUNT(*)FROM AAM_ORIGINAL_USER WHERE GENDER ='女性'),COUNT(*)/(SELECT COUNT(*)FROM AAM_ORIGINAL_USER WHERE GENDER ='女性')
FROM AAM_ORIGINAL_USER
WHERE GENDER ='男性';
结果:
693,258,2
-- 使用CAST函数
SELECT COUNT(*),(SELECT COUNT(*)FROM AAM_ORIGINAL_USER WHERE GENDER ='女性'),CAST(COUNT(*) AS FLOAT)/(SELECT CAST(COUNT(*) AS FLOAT)FROM AAM_ORIGINAL_USER WHERE GENDER ='女性')
FROM AAM_ORIGINAL_USER
WHERE GENDER ='男性';
输出结果:
693,258,2.68604651162791
对比二者,发现如果不通过函数将两个除数转型直接计算的话会导致计算结果不精确,所以一般在进行除法计算时可以通过这种方法先将两个除数转型,得出结果后再通过ROUND(para,小数位数)函数四舍五入。