Учитывая схемувключают только первая группа результатов запроса
Следующий запрос
SELECT a.user_id,
a.date_created,
avg(ai.level) level
FROM assessment a
JOIN assessment_item ai ON a.id = ai.assessment_id
GROUP BY a.user_id, a.date_created;
Возвращает эти результаты
user_id, a.date_created, level
1, "2015-07-13 18:26:00", 4.0000
1, "2015-07-13 19:04:58", 6.0000
13, "2015-07-13 18:26:00", 2.0000
13, "2015-07-13 19:04:58", 3.0000
Я хотел бы изменить запрос так что для каждого пользователя возвращается только самый ранний результат. Другими словами, следующее должно быть возвращено вместо
user_id, a.date_created, level
1, "2015-07-13 18:26:00", 4.0000
13, "2015-07-13 18:26:00", 2.0000
В общем, при выборе что-то, тогда вы тоже должны сгруппироваться. MySQL прощает «ошибку». Большинство других РСУБД этого не делают. – Strawberry
Если вы пытаетесь усреднить ai.level, не должны ли результаты для user_id быть 5 и 2.5? – Acantud
Возможный дубликат [SELECT query возвращает 1 строку из каждой группы] (http://stackoverflow.com/questions/14375099/select-query-return-1-row-from-each-group) – Barranka