Sql server 获取没有分组依据的记录计数

Sql server 获取没有分组依据的记录计数,sql-server,tsql,Sql Server,Tsql,假设我有一张这样的桌子 Id TagNo F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 CoreNo 1 1000 A B C D E F R E W W D 1 2 1000 A B C D E F R E W W D 2 3 1000 A B C D E F R E W W D 3 4 1001 A B C D E F R E

假设我有一张这样的桌子

Id  TagNo  F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 CoreNo
 1   1000   A  B  C  D  E  F  R  E W   W   D    1
 2   1000   A  B  C  D  E  F  R  E W   W   D    2
 3   1000   A  B  C  D  E  F  R  E W   W   D    3
 4   1001   A  B  C  D  E  F  R  E W   W   D    1
 5   1001   A  B  C  D  E  F  R  E W   W   D    2
我想要

  TagNo  F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 CoreNo TotalCores
   1000   A  B  C  D  E  F  R  E W   W   D    1       3
   1000   A  B  C  D  E  F  R  E W   W   D    2
   1000   A  B  C  D  E  F  R  E W   W   D    3
   1001   A  B  C  D  E  F  R  E W   W   D    1       2
   1001   A  B  C  D  E  F  R  E W   W   D    2
列F1的值。。。F11(实际上不止这些)并不重要

我知道Count()。但是如果我想使用
Count()
,那么我必须按所有列进行分组,这是我不想要的

我希望我能说清楚


谢谢

也许可以在子选择中使用group by进行子选择。如果它是一个大表,这不是一个好主意。

可能在子选择中使用group by进行子选择。如果这是一张大桌子,这不是一个好主意。

你可以用这个:

SELECT
    TagNo, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, CoreNo,
    TotalCores = COUNT(*) OVER(PARTITION BY TagNo)
FROM 
    dbo.YourTable
你可以用这个:

SELECT
    TagNo, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, CoreNo,
    TotalCores = COUNT(*) OVER(PARTITION BY TagNo)
FROM 
    dbo.YourTable

没有分组依据和计数:-)


没有分组依据和计数:-)


这就像想吃东西,但不想吃东西。你要吃什么?因为有count(),我必须按所有字段分组吗?不。你必须按要将计数除以的字段分组,例如corenoth,这就像想吃东西,但不想吃食物。你要吃什么?要有count(),我必须按所有字段分组吗?不。你必须按要将计数除以的字段分组,例如CoreNoHa-ha。聪明。愚蠢的问题,但聪明的解决方案。哈哈。聪明。愚蠢的问题,但聪明的解决方案。