我的表是:
|ID |data | cr |
| 1 | AAA | |
| 2 | AAA | |
| 3 | AAA | |
| 4 | BBB | |
| 5 | CCC | |
| 6 | BBB | |
Run Code Online (Sandbox Code Playgroud)
我需要结果:
|ID |data | cr |
| 1 | AAA | 3 |
| 2 | AAA | 3 |
| 3 | AAA | 3 |
| 4 | BBB | 2 |
| 5 | CCC | 1 |
| 6 | BBB | 2 |
Run Code Online (Sandbox Code Playgroud)
发现此 更新列值为同一表中特定值的COUNT行并尝试过:
UPDATE MyTbl a,
(SELECT data,COUNT(*) cnt
FROM MyTbl
GROUP BY data) b
SET a.cr = b.cnt
WHERE a.data= b.data
Run Code Online (Sandbox Code Playgroud)
SQL Server给出错误:
Msg 102, Level 15, State 1, Line 1 Incorrect syntax near 'a'.
Msg 102, Level 15, State 1, Line 4 Incorrect syntax near 'b'.
Run Code Online (Sandbox Code Playgroud)
知道如何在SQL Server(2014 Express)中执行此操作.
提前致谢.
它应该是Update..set...from.试试这个:
update a
set a.cr=b.cnt
from MyTbl a join
(SELECT data,COUNT(*) cnt
FROM MyTbl
GROUP BY data) b on a.data=b.data
Run Code Online (Sandbox Code Playgroud)
结果:
ID data cr
--------------
1 AAA 3
2 AAA 3
3 AAA 3
4 BBB 2
5 CCC 1
6 BBB 2
Run Code Online (Sandbox Code Playgroud)
SQL小提琴中的演示
| 归档时间: |
|
| 查看次数: |
3232 次 |
| 最近记录: |