首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sql server 2012统计解决思路

2012-12-15 
sql server 2012统计表Anamequantitya1b2c7需要统计结果namequantity百分比a110% b220% c770%谢谢[最优解

sql server 2012统计
表A

name    quantity
a       1
b       2
c       7

需要统计结果

name    quantity    百分比
a        1          10% 
b        2          20% 
c        7          70%  

谢谢
[最优解释]

WITH test (name ,   quantity)
 AS 
 (SELECT 'a',       1
 UNION ALL 
 SELECT 'b',       2
 UNION ALL 
 SELECT 'c',       7)
 SELECT NAME,quantity,CONVERT(VARCHAR(10),CONVERT(FLOAT(5),quantity)/(select SUM(quantity)total FROM test)*100)+'%'
 FROM test 
 /*
 NAME quantity    
 ---- ----------- -----------
 a    1           10%
 b    2           20%
 c    7           70%
 
 (3 行受影响)
 
 
 */

[其他解释]
select name,quantity,cast(quantity/(select SUM(quantity) from A)*100 as varchar(10))+'%'
from A
[其他解释]
没用过,但是光这个问题,没必要group 哦
[其他解释]
Select T.Name,T.Qty,Cast(T.Qty/x.Qty*100 as varchar(10))+'%' as Perc
 From _Tab T,(Select Sum(Qty) as Qty From _Tab) x

[其他解释]
引用:
select name,quantity,cast(quantity/(select SUM(quantity) from A)*100 as varchar(10))+'%'
from A


这种方法我会,我是想能不能用rollup 或者其它的方法来统计。
[其他解释]
引用:
SQL code?1234567891011121314151617181920WITH test (name ,   quantity) AS  (SELECT 'a',       1 UNION ALL  SELECT 'b',       2 UNION ALL  SELECT 'c',       7) SELECT NAME,quantity,CONVERT(……



能用rollup这种统计吗?
[其他解释]
那就同求吧  。。。

热点排行
Bad Request.