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