数据库求比
发布时间: 2023-08-23 13:18:42
A. 用sql求百分比,同一列数据
select name,str((case (select isnull(sum(cost),0) from table1) when 0 then 0 else cost/(select isnull(sum(cost),0) from table1) end)*100,10,2)+'%' as bfb from table1
以上sql语句较长,解释一下:
使用case...when...end,是为了避免合计cost为0的话,出现无法除0的错误;结果值乘以100是为了配合百分比格式;使用str(...,10,2)函数是把计算出来的数字值转换成两位小数精度的文本串;最后,在结果后加上一个百分号,效果就完整了。
以上语句在sqlserver数据库中测试通过。
B. SQL求百分比的问题
这是什么数据库呀?俺没有见过(糗). 最后一列能不能直接使用字符串'100.00%' 呢?
希望下边的sql能帮助到你
SELECT T1.供应商,T1.货物,T1.数量,T2.总数量,ROUND(T1.数量*100/T2.总数量,2)||'%' 比例, '100.00%',T2.总数量/T2.总数量 FROM (
(SELECT 供应商,货物,数量 FROM T_TABLE) T1
LEFT JOIN
(SELECT 货物,count(数量) 总数量 FROM T_TABLE GROUP 货物 ) T2
ON T1.货物=T2.货物
)
热点内容