【发布时间】:2014-08-31 06:23:12
【问题描述】:
假设我有以下内容
Col1 Col2
1 A
1 A
1 A
1 B
1 B
1 B
1 B
2 A
2 A
2 B
3 A
3 A
3 A
3 A
3 A
3 A
我需要做的是编写一个查询,确定 Col1 和 Col2 的每个组合的记录数,然后将 1 除以该数字并将该值分配给新列 (Col3),但是我还需要更新记录在某些情况下,因此在对新列求和时,它总是为 Col1 和 Col2 的每个组合加一。
所以,在第一步我会结束
Col1 Col2 NumberofRows
1 A 3
1 B 4
2 A 2
2 B 1
3 A 6
除以 1 的结果
Col1 Col2 Col3
1 A 0.33
1 A 0.33
1 A 0.33
1 B 0.25
1 B 0.25
1 B 0.25
1 B 0.25
2 A 0.5
2 A 0.5
2 B 1
3 A 0.17
3 A 0.17
3 A 0.17
3 A 0.17
3 A 0.17
3 A 0.17
但是,当对 Col1 = 1 和 Col2 = A 的 Col3 求和时,出于显而易见的原因,我们最终得到 0.99 而不是 1。同样,将 Col1=3 和 Col2=A 的 Col3 相加,我们最终得到 1.02。
我该怎么做?
【问题讨论】:
标签: sql sql-server sum rows divide