计数不同条目通过一个新的列求和值
问题描述:
你会怎么做:计数不同条目通过一个新的列求和值
Tim ...
Tim ...
Henry ...
Henry ...
Henry ...
我对第一列thatc ontains这些名称的表,我很感兴趣,添加一个新的列X,即应该有:
0.5
0.5
0.333
0.333
0.333
计算第一列中不同条目的数量(如果要执行新列的总和)。谢谢!
答
您可以使用下列内容:
select name,
1.0/count(name) over(partition by name) as X
from yourtable
答
请尝试:
select
[Name], 1.00/count(*)
from YourTable
group by [Name]
样品:
declare @testTable table (Name varchar(10))
insert into @testTable
select 'A' UNION ALL
select 'A' UNION ALL
select 'A' UNION ALL
select 'B' UNION ALL
select 'B'
SELECT
[Name], 1.00/count(*)
FROM @testTable
GROUP BY [Name]
+0
非常感谢你,techdo!我试过了,它创造了奇迹。 – Sam 2013-02-13 11:52:37
非常感谢你,bluefeet,在我注意到你的答案之前,我已经尝试了第一个答案变种,但你的确非常有趣,特别是我没有使用“分区”,但几次!我现在要试试这个! – Sam 2013-02-13 11:47:04
伟大的解决方案,经过测试,如果表中包含多列,选择可以参考几个! – Sam 2013-02-13 11:53:22
@Sam不客气。关于'over()'的好处是你不必对它使用'group by'子句。 :) – Taryn 2013-02-13 11:53:41