MS Access 根据其他列数据平均一个值
MS Access average a value based on other column data
所以我的数据看起来像这样:
Smpl_id Plate_id CT_Value
1 1 27
1 1 32
2 1 56
2 1 49
1 2 40
1 2 36
2 2 58
2 2 64
我想设计一个查询,使盘子中每个样本的 returns 平均值 CT_Value
,所以它看起来像这样:
Smpl_id Plate_id Avg_CT
1 1 29.5
2 1 52.5
1 2 38
2 2 61
我试过了
Avg_CT: DAvg("[CT_Value]","[qPCR_sample_data]","[Plate_id] = '" & [Plate_id] & "'" And "[Smpl_is] = '" & [Smpl_id] & "'")
但这只会导致:
Smpl_id Plate_id CT_Value
1 1 45.25
1 1 45.25
2 1 45.25
2 1 45.25
1 2 45.25
1 2 45.25
2 2 45.25
2 2 45.25
我不能只列出板或样品 ID 号,因为这实际上是一个不断增长的长列表。我还需要在未来的计算中使用这些平均数(我已经想出如何去做)。
另外,我刚刚开始使用MS Access(设计一个全新的数据库),所以我有点了解SQL,但实际经验很少。
谢谢!
您应该能够使用简单的聚合,例如:
select t.smpl_id, t.plate_id, avg(t.ct_value) as avg_ct
from qpcr_sample_data t
group by t.smpl_id, t.plate_id
您将需要使用分组查询。
- 创建一个新查询,并添加 table(在我的示例中,我将其称为 tblSample)。
- 将三个字段 Smpl_id、Plate_id 和 CT_Value 添加到查询网格。
- 在查询设计菜单上,单击标有 "Totals" 的按钮。
- 这会在查询网格中引入一个名为 "Total" 的新行,所有三个字段都将其设置为 "Group By"。
- 只需将 CT_Value 的 "Group By" 更改为 "Avg",然后 运行 查询即可获得您想要的结果:
此致,
所以我的数据看起来像这样:
Smpl_id Plate_id CT_Value
1 1 27
1 1 32
2 1 56
2 1 49
1 2 40
1 2 36
2 2 58
2 2 64
我想设计一个查询,使盘子中每个样本的 returns 平均值 CT_Value
,所以它看起来像这样:
Smpl_id Plate_id Avg_CT
1 1 29.5
2 1 52.5
1 2 38
2 2 61
我试过了
Avg_CT: DAvg("[CT_Value]","[qPCR_sample_data]","[Plate_id] = '" & [Plate_id] & "'" And "[Smpl_is] = '" & [Smpl_id] & "'")
但这只会导致:
Smpl_id Plate_id CT_Value
1 1 45.25
1 1 45.25
2 1 45.25
2 1 45.25
1 2 45.25
1 2 45.25
2 2 45.25
2 2 45.25
我不能只列出板或样品 ID 号,因为这实际上是一个不断增长的长列表。我还需要在未来的计算中使用这些平均数(我已经想出如何去做)。
另外,我刚刚开始使用MS Access(设计一个全新的数据库),所以我有点了解SQL,但实际经验很少。
谢谢!
您应该能够使用简单的聚合,例如:
select t.smpl_id, t.plate_id, avg(t.ct_value) as avg_ct
from qpcr_sample_data t
group by t.smpl_id, t.plate_id
您将需要使用分组查询。
- 创建一个新查询,并添加 table(在我的示例中,我将其称为 tblSample)。
- 将三个字段 Smpl_id、Plate_id 和 CT_Value 添加到查询网格。
- 在查询设计菜单上,单击标有 "Totals" 的按钮。
- 这会在查询网格中引入一个名为 "Total" 的新行,所有三个字段都将其设置为 "Group By"。
- 只需将 CT_Value 的 "Group By" 更改为 "Avg",然后 运行 查询即可获得您想要的结果:
此致,