我有一个名为Datatable的表。它有一个名为data
的列。
data
-------
10
20
30
我需要一个列
data
-------
10/60
20/60
30/60
我把查询写成
select data/sum(data)
from datatable;
答案 0 :(得分:3)
对于SQL Server 2005+,您可以这样做:
SELECT CAST(data AS VARCHAR(10)) + '/' + CAST(SUM(data) OVER() AS VARCHAR(10))
FROM Datatable
答案 1 :(得分: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
答案 2 :(得分: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
答案 3 :(得分:0)
在整个表格(sum
)上使用窗口函数over ()
:
select 1.0 * data / sum(data) over ()
from tableName
答案 4 :(得分:-1)
我不确定60值来自何处,但我会做这样的事情:
select data + '/' + sum(data) from datatable group by data
要连接,请查看以下链接: http://msdn.microsoft.com/en-us/library/aa276862(v=sql.80).aspx
希望这有帮助。