Col1 | Col2 |
10 NULL
20 NULL
30 NULL
20 NULL
我有一个表,我想用以下条件更新Col2的每一行:一些定标器号X/(Count of the value from Col1)
。那就是X = 8
,那么我应该拥有以下值8/1 , 8/2, 8/1, 8,2 and so on..
我正在做以下事情:
SELECT COUNT(*)
FROM (
SELECT [Table].Col1
FROM [Table]
INNER JOIN [Table] T ON [Table].Id = T.Id
WHERE [Table].Col1 = T.Col1
)
你能指出我的错误吗?
答案 0 :(得分:2)
你需要这样的东西:
SELECT t1.Col1, 8 / t2.cnt
FROM [Table] t1
INNER JOIN (
SELECT Col1, COUNT(*) AS cnt
From [Table]
GROUP BY Col1
) t2 ON t1.Col1 = t2.Col2
上述查询使用包含每Col1
个值的派生表。使用此计数,我们可以对原始表的每一行进行所需的数学运算。