MS Access усредняет значение на основе других данных столбца - PullRequest
0 голосов
/ 22 апреля 2020

Таким образом, мои данные выглядят примерно так:

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

Я хотел бы разработать запрос, который возвращает средние значения 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

Я не могу просто перечислить номера идентификатора пластины или образца, потому что это на самом деле длинный список, который постоянно растет. Мне также нужно использовать эти средние числа в будущих расчетах (что я уже понял, как это сделать).

Кроме того, я только начал использовать MS Access (проектирование совершенно новой базы данных), поэтому я немного понимаю SQL, но у меня очень мало реального опыта в этом.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 22 апреля 2020

Вам потребуется использовать группу по запросу.

  • Создайте новый запрос и добавьте таблицу (в моем примере я назвал ее tblSample).
  • Добавить три поля, Smpl_id, Plate_id и CT_Value для сетки запроса.
  • В Memubar Query Design, нажмите на кнопку с меткой «Итоги».
  • Это вводит новую строку в сетке запросов под названием «Итого» со всеми тремя полями, для которых установлено « Группа по".
  • Просто измените «Группировать по» для CT_Value на «Avg» и выполните запрос, чтобы получить результаты, которые вам нужны:

enter image description here

С уважением,

0 голосов
/ 22 апреля 2020

Вы должны быть в состоянии использовать простое агрегирование, такое как:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...