Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL SERVER:使用分区统计同一组的数据_Sql_Sql Server_Sql Server 2008 - Fatal编程技术网

SQL SERVER:使用分区统计同一组的数据

SQL SERVER:使用分区统计同一组的数据,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,基于上面的图片,我需要列出CountComments列,其中将计算每个位置备注列中类似数据的数量。因此,租户1和租户2在位置“EM”中总共有2个,并且只有租户3在同一位置上总共有1个。位置“CW”的计数相同 不幸的是,我得到了这个输出,使用相同的remnarks计算所有的值,而忽略了位置 这是我在代码中使用的部分 CASE WHEN [Remarks] >= 4 THEN Remarks ELSE count(Remarks) OVER(PARTIT

基于上面的图片,我需要列出CountComments列,其中将计算每个位置备注列中类似数据的数量。因此,租户1和租户2在位置“EM”中总共有2个,并且只有租户3在同一位置上总共有1个。位置“CW”的计数相同

不幸的是,我得到了这个输出,使用相同的remnarks计算所有的值,而忽略了位置

这是我在代码中使用的部分

 CASE
        WHEN [Remarks]  >= 4 THEN Remarks 
        ELSE count(Remarks) OVER(PARTITION BY [Remarks] )
END as 'CountRemark'  
试试这个

select location,tenant,remarks,count(*) over (partition by Location,remarks) as 
counterremarks from table

尝试按位置和备注使用窗口函数和分区:

SELECT 
 Location, Tenant, Remarks, 
 CountRemarks = COUNT(*) OVER (PARTITION BY Location, Remarks)
FROM your_table
ORDER BY Tenant
根据您的样本数据,这将导致:

Location    Tenant  Remarks CountRemarks
EM          Tenant1 1       2
EM          Tenant2 1       2
EM          Tenant3 2       1
CW          Tenant4 1       2
CW          Tenant5 1       2
CW          Tenant6 2       1

您是否尝试过(按位置划分)?是的,它计算了相同位置的总数。否,仍然是相同的输出,计算具有相同数据的所有备注,忽略每个位置的计数。然后,您还需要在分区子句中使用位置。请参阅我编辑的回复