sql-server - SQL Server 平均计数
问题描述
表包含
state,
location,
job_number,
(and many more columns)
我需要查询该州位置的 job_numbers 的平均计数。换句话说,对于每个州,我需要知道每个位置的平均工作数量。
因此,如果有 100 个具有 3 个工作编号的阿拉斯加位置和 100 个具有 1 个工作编号的阿拉斯加位置,则所有阿拉斯加行的结果将为 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 个其他列。我不想按所有人分组。
解决方案
一种方法是使用公用表表达式添加列 for count
,使用over
子句避免需要 a group by
,然后使用avg
, 再次使用over
子句从该 cte 中选择。这样的事情应该可以解决问题:
;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
推荐阅读
- python - 在远程主机中运行时,stdout 不打印任何内容
- git - `cherry-pick` 分支的所有提交
- c - malloc() 无法在 C 中的函数内分配内存
- android - 如何在布局中获得所有相同的视图类型?
- python - 我想使用熊猫计算数据框中的最大 GDP 列
- java - 为什么在 StringLatin1 实用程序类的 hashCode 方法中使用额外的 var2 字节数组?
- javascript - Puppeteer 删除 DOM 元素和子元素并释放内存
- google-workspace - 如何在 StackDriver 中查看 GoogleDrive 的更改
- excel - 如何根据另一列中的所有单元格超过 0 来获得一列的总数
- javascript - 一次将多行中的html表行数据发布到django模型