我有这样的表
Id | Name | Status
------+------------+--------------
1 example1 3
1 example2 2
2 example3 3
2 example4 1
3 example5 1
4 example6 3
如何写出像我这样得到ME的结果
Id | Name | Status | Count_All
------+------------+--------------+------------
1 example1 3 6
2 example2 2 6
3 example3 3 6
4 example4 1 6
5 example5 1 6
6 example6 3 6
列Count_All的值,是所有行的计数
答案 0 :(得分:3)
请使用此解决方案..
SELECT Id , [Name] , [Status], COUNT(*) OVER() Count_All
FROM yourTableName
答案 1 :(得分:1)
如果我理解正确,您希望将表中所有行的计数作为列Count_All,因此在列ID上添加Count以将所有行作为名为Count_All的新列获取,然后按其他列分组以允许对于聚合计数方法。
SELECT [Id], [Name], [Status], COUNT([Id]) AS [Count_All]
FROM [dbo].[YourTable]
GROUP BY [Id], [Name], [Status]
答案 2 :(得分:0)
这样做:
SELECT
y.ID,
y.Name,
y.Status,
Count_All = (SELECT COUNT(*) FROM yourtable)
FROM
yourtable AS y
答案 3 :(得分:0)
选择*,COUNT(1)OVER()作为表中的计数