#mysql
#mysql
Вопрос:
У меня есть эта таблица:
---- --------- ------ ----------
| ID | ID_USER | NOTE | QUESTION |
---- --------- ------ ----------
| 1 | 12 | 3 | 1 |
| 2 | 31 | 2 | 1 |
| 3 | 12 | 9 | 1 |
| 4 | 31 | 8 | 2 |
| 5 | 12 | 10 | 2 |
| 6 | 31 | 3 | 2 |
---- --------- ------ ----------
Как мне экспортировать значения, чтобы сгруппировать их по ID_USER, QUESTION и составить среднее значение заметок? Значения, которые должны быть сгруппированы, как в таблице ниже:
---- ---------- --------- -------------
| ID | QUESTION | ID_USER | MEDIUM_NOTE |
---- ---------- --------- -------------
| 1 | 1 | 12 | 6 |
| 2 | 1 | 31 | 2 |
| 3 | 2 | 12 | 10 |
| 4 | 2 | 31 | 5.5 |
---- ---------- --------- -------------
Спасибо!
Комментарии:
1. Не могли бы вы, пожалуйста, попробовать этот запрос? ВЫБЕРИТЕ ВОПРОС, ID_USER, СРЕДНЕЕ ЗНАЧЕНИЕ (ПРИМЕЧАНИЕ) В КАЧЕСТВЕ СРЕДНЕГО ЗНАЧЕНИЯ Из ГРУППЫ имя_таблицы ПО ВОПРОСУ, ID_USER;
Ответ №1:
SELECT
id_user,
question,
AVG(note) AS medium_note
FROM notes
GROUP BY id_user, question
Вы можете сгруппировать по пользователю и вопросу, а затем вычислить среднее значение.
Ответ №2:
Предполагая, что столбец id уникален :
SELECT id,question,id_user,avg(note) as 'MEDIUM_NOTE' FROM table_name GROUP BY id_user,question ORDER BY id;