sql - 根据不同参数查询平均值
问题描述
数据:
Project Program Month Value
1 aaa 1/1/20 25
1 aaa 1/1/20 25
2 aaa 1/1/20 25
2 aaa 1/1/20 25
1 bbb 1/1/20 25
1 bbb 1/1/20 25
1 bbb 1/2/20 25
2 bbb 1/2/20 25
2 bbb 1/2/20 25
期望的输出:
month program avg(based on the number of different projects)
1/1/20 aaa 100/2
1/1/20 bbb 50/1
1/2/20 bbb 75/2
我正在使用 MS-Access 创建一个查询,该查询根据月份和程序获取平均值。
平均值是同一日期的总价值除以该日期的不同项目数。
解决方案
在 Access SQL 中,您可能需要两个子查询:
SELECT
TableA.Month,
TableA.Program,
Sum(TableA.Value) As Total,
Projects,
Sum(TableA.Value)/Projects As Average
FROM
TableA
INNER JOIN
(SELECT Month, Program, Count(*) As Projects
FROM
(SELECT TableA.Month, TableA.Program, TableA.Project
FROM TableA
GROUP BY TableA.Month, TableA.Program, TableA.Project) As T2
GROUP BY Month, Program) As T1
ON T1.Month = TableA.Month And T1.Program = TableA.Program
GROUP BY TableA.Month, TableA.Program, Projects;
结果:
推荐阅读
- node.js - 设置超时箭头函数
- ios - IOS/目标-C;在 if else 逻辑中使用 Return 语句来结束方法
- c# - 如何增加 ToolStripMenuItem 中 CheckBox 的大小?
- sql - PostgreSQL:SELECT INTO 正在更改字段的数据类型
- javascript - WOW.js 不支持 chrome 68.0.3440.106
- r - sum() 与 NA 的行为
- python - 如何在图像中的点周围画一个正方形
- rust - 如何从切片中复制最后一个元素
- apache - Apache HTTP 服务器 - .htaccess 版本控制
- android - Android Activity 生命周期处理