Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.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 Server平均计数_Sql Server_Tsql - Fatal编程技术网

Sql server SQL Server平均计数

Sql server SQL Server平均计数,sql-server,tsql,Sql Server,Tsql,表包含 state, location, job_number, (and many more columns) 我需要查询该州工作岗位的平均数量。换句话说,对于每个州,我需要知道每个地点的平均工作数量 因此,如果有100个阿拉斯加位置有3个jobnumber,100个阿拉斯加位置有1个jobnumber,那么所有阿拉斯加行的结果都是2。(100*3 + 100*1)/200. 寻找每个州每个位置的平均工作数量 期望结果 State Location JobNumber Av

表包含

 state,
 location,
 job_number,
 (and many more columns)
我需要查询该州工作岗位的平均数量。换句话说,对于每个州,我需要知道每个地点的平均工作数量

因此,如果有100个阿拉斯加位置有3个jobnumber,100个阿拉斯加位置有1个jobnumber,那么所有阿拉斯加行的结果都是2。(100*3 + 100*1)/200.

寻找每个州每个位置的平均工作数量

期望结果

State   Location  JobNumber AvgJobsPerLocInState
Alaska  Loc1      Job1       2
Alaska  Loc1      Job2       2
Alaska  Loc2      Job3       2
Alaska  Loc2      Job4       2
Ohio    Loc3      Job5       1

不知道怎么做。更复杂的是,我的最后一个查询中还有大约50个其他列。我不想把他们都分组

一种方法是使用公共表表达式为
count
添加一列,使用
over
子句避免需要
分组依据
,然后使用
avg
从该cte中选择,再次使用
over
子句。 像这样的事情应该可以做到:

;WITH CTE AS
(
    SELECT State 
          ,Location
          ,JobNumber -- and all the other columns
          ,COUNT(JobNumber) OVER(PARTITION BY State, Location) As CountOfJobsPerLocation
    FROM -- rest of the query here
)

SELECT  State 
       ,Location
       ,JobNumber -- and all the other columns
       ,AVG(CountOfJobsPerLocation) OVER(PARTITION BY State) As AvgJobsPerLocInState
FROM CTE

使用派生表或CTE分层查询:

Outer query that adds the 50+ columns
  FROM {Query that groups by State (only) and gets Average of Counts}
    FROM {Query that groups by State & Location and gets Count of JobNumbers}

请阅读一些关于改进您的问题的提示。谢谢提示链接。我在这里最难格式化,需要处理它。谢谢你的帮助。