[英]Cannot getting Correct query
I have a table named Datatable. 我有一个名为Datatable的表。 and it has a column named
data
. 它有一个名为
data
的列。
data
-------
10
20
30
i need to get a column as 我需要作为一个专栏
data
-------
10/60
20/60
30/60
i wrote the query as 我写的查询为
select data/sum(data)
from datatable;
For SQL Server 2005+ you can do this: 对于SQL Server 2005+,您可以执行以下操作:
SELECT CAST(data AS VARCHAR(10)) + '/' + CAST(SUM(data) OVER() AS VARCHAR(10))
FROM Datatable
try, 尝试,
select a.data / b.total -- will result the quotient of 10/60
from datatable a,
(select SUM(data) total from datatable) b
but if you want it to be concatenated 但是如果您希望将其串联
select a.data + '/' + b.total -- will result literal string value of 10/60
from datatable a,
(select SUM(data) total from datatable) b
This works on SQL Server 2005 or later: 这适用于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
Using the window function sum
over the entire table ( over ()
): 在整个表格中使用窗口函数
sum
( over ()
):
select 1.0 * data / sum(data) over ()
from tableName
I'm not sure where the 60 value comes from, but I would do something like this: 我不确定60的值来自哪里,但是我会做这样的事情:
select data + '/' + sum(data) from datatable group by data
For concatenation, please check this link: http://msdn.microsoft.com/en-us/library/aa276862(v=sql.80).aspx 对于串联,请检查此链接: http : //msdn.microsoft.com/zh-cn/library/aa276862(v=sql.80).aspx
Hope this helps. 希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.