获取选择列中的所有行数

时间:2018-02-06 16:26:52

标签: sql-server

我有这样的表

  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的值,是所有行的计数

4 个答案:

答案 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()作为表中的计数