Предположим, что в таблице указано class_nr
, а значения выборки class_nr
- это E, U, R, O, P, S.SQL Server: назначить значение для символа и получить среднее значение для каждого пользователя
+---------+-------------+
| user_id | class_nr |
+---------+-------------+
| 1 | E |
| 1 | O |
| 1 | E |
| 2 | P |
| 2 | R |
| 2 | U |
+---------+-------------+
Очки для класса:
E=5
U=4
R=3
O=2
P=1
Теперь я хочу, чтобы вычислить средние баллы для пользователя для class_nr
у него есть. Например, user_id
1 имеет 2 E
с и 1 O
. Таким образом, он имеет средние точки:
(5+2+5)/3 = 4
user_id
Аналогично 2 получает:
(1+3+4)/3 = 2.67
Как я могу добиться этого с одного запроса SQL в SQL Server?
Я создайте таблицу справки Points_for_class, присоединитесь к ней, выполните групповую настройку с помощью AVG и т. д. (или CASE, если нет дополнительной таблицы.) – jarlh
К сожалению, у меня нет возможности создавать или изменять таблицы в БД. Я могу просто получить данные. –