我正在尝试在Access中创建一个查询以返回基于1-5答案比例(1 =差等)的调查的平均值。我不能简单地使用avg(q1),因为创建调查并将结果放入数据库的软件(自动数据专家)可以将问题评分为0,如果没有答案的话。这扭曲了结果。返回Access中列的唯一平均值
我不能做...... WHERE Q1> 1,因为这消除了所有其他问题(每行都有Q1,Q2等)。
所以,我试图做一个查询,如本
(SELECT avg(VAL) FROM (SELECT ScannedData.Q1 as VAL FROM ScannedData WHERE ScannedData.Q1 > 1)t) AS AvgOfQ1
但这个问题是查询返回一个值,并给出所有行相同的值(如5.82)。
正在创建的报告按类别分组,因此最终得到的报告具有A类Q1 5.82,B类Q1 5.82,C类Q1 5.82等等。
要补充一点 - 这个调查的每一个问题都需要像这样计算。
简而言之,如何通过上述查询获得每个班级分组的平均值。
非常感谢您的帮助。
根据要求添加如下:
该表包含问题结果。对于每个问题,都有一个值为0-6的列。因此,对于调查问题1,该列将被命名为Q1,值为1-6。另外还有一个重要的className列,它与调查涉及到的类有关。
所以,我有一个看起来像这样的
|Q1|Q2|Q3|Q4|ClassName |
|1 |5 |4 |5 |Asbestos Training|
|3 |4 |0 |6 |Asbestos Training|
|3 |1 |3 |4 |Asbestos Training|
|4 |3 |5 |4 |Microsoft Word |
|6 |1 |5 |3 |Microsoft Word |
|0 |2 |5 |1 |Microsoft Word |
用我上面的查询我得到这样
石棉培训结果Q1Avg 5.82(对于上述结果并不实际数目,只是举例)的纪录 微软培训Q1AVG 5.82
当我需要(使用上面的数据,例如)
石棉培训Q1Avg 2。 33 Microsoft Word Q1Avg 5.00(0不需要计数,因为它被跳过,不应该偏斜结果)。
我没有设计这个数据库。这是软件使用的格式。每次我们创建调查时,它都会删除一个新的访问数据库。
你能提供一些示例数据和预期的效果? –
Gordon Linoff的解决方案看起来不错,你试过了吗? –