В следующем ERDвключают в себя первый и последние группы в запросе приводит к
assessment
представляет собой тест завершен пользователем. Каждая оценка состоит из нескольких предметов, а level
показывает их оценку по каждому.
Мне нужно рассчитать разницу между средним баллом пользователя по их ранней и последней оценке, но я действительно борется.
я могу получить средний балл для каждой оценки с
SELECT a.user_id,
a.date_created,
avg(ai.level)
FROM assessment a
JOIN assessment_item ai ON a.id = ai.assessment_id
GROUP BY a.user_id, a.date_created
ORDER BY 1;
Этот запрос возвращает данные, такие как
user_id, date_created, avg_score
10, "2015-07-13 18:09:59", 3.0000
11, "2015-07-13 18:09:59", 3.0000
13, "2015-07-13 18:26:00", 2.0000
13, "2015-07-13 18:27:28", 6.0000
13, "2015-07-13 19:04:58", 3.0000
я мог (программно) перебрать результатов, возвращаемых этим запросом, игнорируя любые " средних "оценок или результатов от пользователей, которые только завершили одну оценку, но я думаю, что должен быть способ улучшить запрос, чтобы возвращаемые данные были ближе к тому, что мне нужно.
вы можете разместить скрипт sql? –