sql计算百分比函数
⑴ 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.货物
)
⑵ 用sql语句怎么计算 百分比 的数值呢 求代码!
--建立测试表testTable
createtabletestTable(idintidentity(1,1),typenvarchar(8))
go
--循环插入测试语句
declare@aint
set@a=0
while(@a<100)
begin
if@a<80
insertintotestTable(type)values('会员')
else
insertintotestTable(type)values('vip')
set@a=@a+1
end
go
--查看插入表中的所有数据
select*fromtestTable
--查看你要看的的数据
selectb.sumb%a.suma'会员占总人数的百分比(%)'
from(selectCOUNT(*)sumafromtestTable)a,
(selectCOUNT(*)sumbfromtestTablewheretype='会员')b
selectb.sumb%a.suma'vip占总人数的百分比(%)'
from(selectCOUNT(*)sumafromtestTable)a,
(selectCOUNT(*)sumbfromtestTablewheretype='vip')b
selectb.sumb%a.suma'会员占总人数的百分比(%)',c.sumc%a.suma'vip占总人数的百分比(%)'
from(selectCOUNT(*)sumafromtestTable)a,
(selectCOUNT(*)sumbfromtestTablewheretype='会员')b,
(selectCOUNT(*)sumcfromtestTablewheretype='vip')c
--查看完删除测试表testTable
droptabletestTable
结果我已经看过了,如下图:
⑶ sql 里怎么统计字段的完善百分比
我觉得用存储过程比较好,
假设禅肢A为主键
create proc pname @pri int --@pri这个参数是表的主键
--类型与表的主键类型一致
as
select * into temp from table_name where A=@pri
declare @count int
set @count=1
select @count=@count+1 from temp where B is not null
select @count=@count+1 from temp where C is not null
... ...
print '完成百分比为:'+
left(convert(varchar(10),round(@line/3.0*100,1)),4)+'%'
drop table temp --如果不把临时表删除,在再次执行该存储过程的时候会报错
go
说明一下:
set @count=1,是把主键算上,因为主键不能空。
也就是说烂袭毁,表中有几列不能为空,@count 的初使值就为几。
print中的饥备几个函数:
left(),有两个参数:从第一个参数中取第二个参数个字符,也就是说第一个参数为字符型,第二个为整数。
convert()是将数转换为字符型数据
round()有两个参数,取近似值,第二个参数为小数点的位数,第一个参数为要求的数。
效率问题我是想不出好的了。我觉得这样也挺快的。
⑷ 怎么用sql算出两个表中数量的百分比
with t1 as (select count(*) f from a), t2 as (select count(*) f from b)
select (select f*1. from a)/((select f from a)+(select f from b))
⑸ 用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数据库中测试通过。
⑹ SQL怎么把小数转换为百分比
举例说明。例如有数据表如图:
注: 本例是采用excel 2007版本做的。
⑺ sql中如何计算百分比 并保留两位小数
select convert(decimal(18,2),除数*1.0/被除数)*100 as 百分比 from 表名
decimal(18,2)表示取两位小数
⑻ sql查询结果如何以百分比形式输出
以百分比形式输出sql查询结果的步骤如下:要准备的材料是:computer,sql querier。
1.首先,打开sql查询器并连接到需要查询的数据表。以测试表的得分字段为例。
⑼ 求一条SQL计算百分比的语句,谢谢好心人! 就是让每个牌子的数量除以所有手机的总和
这样写看看,能行的,我测试过的:
结果纳好迟为:
OPPO 60 66.67%
诺基亚 10 11.11%
三星 20 22.22%
【
SELECT A.手机品牌,A.数量,CONVERT(VARCHAR(8),CONVERT(DECIMAL(8,2),A.数量*1.0/B.SUM_数量*100))+'%'
FROM
(SELECT 手机袜乱品牌,SUM(数量) AS 数量 FROM BAIDU_224 GROUP BY 手机品牌) AS A,
(SELECT SUM(数量洞李) AS SUM_数量 FROM BAIDU_224) AS B
】
⑽ sql 怎么用一个语句求出同一列的某一个字段在整个列的百分比
可考虑使用窗口函数,计算各行某字段数值占整列的百分比:
selectratio_to_report(sal)over()fromemp;
网络你妹,我不修改了,最好把我回答删掉。
以上。