0

我有一个名为 Datatable 的表。它有一个名为data.

data  
-------
10       
20    
30

我需要得到一个专栏

data  
-------
10/60   
20/60   
30/60  

我将查询写为

select data/sum(data) 
  from datatable;
4

5 回答 5

3

对于 SQL Server 2005+,您可以这样做:

SELECT CAST(data AS VARCHAR(10)) + '/' + CAST(SUM(data) OVER() AS VARCHAR(10))
FROM Datatable
于 2013-01-31T15:13:51.230 回答
2

尝试,

select a.data / b.total       -- will result the quotient of 10/60
from   datatable a, 
       (select SUM(data) total from datatable) b

但如果你想把它连接起来

select a.data + '/' + b.total -- will result literal string value of 10/60
from   datatable a, 
       (select SUM(data) total from datatable) b
于 2013-01-31T15:08:06.893 回答
0

这适用于 SQL Server 2005 或更高版本:

declare @t table (data int)
insert into @t (data) values (10),(20),(30)

select (data * 1.0)/ SUM(data) OVER () from @t
于 2013-01-31T15:14:58.390 回答
0

sum在整个表格上使用窗口函数( over ()):

select  1.0 * data / sum(data) over ()
from    tableName

SQL Fiddle 的示例。

于 2013-01-31T15:19:15.013 回答
-1

我不确定 60 值来自哪里,但我会这样做:

select data + '/' + sum(data) from datatable group by data

对于串联,请查看此链接: http: //msdn.microsoft.com/en-us/library/aa276862 (v=sql.80).aspx

希望这可以帮助。

于 2013-01-31T15:11:02.047 回答