В таблице у меня есть 1 столбец (Total_marks) и другой столбец (User_id), теперь я хочу сформулировать запрос для выбора user_id и avg-отметок (среднее из total_marks, охватывающих несколько строк) каждого идентификатора пользователя.как сформулировать запрос tsql для Avg из нескольких строк столбца на основе соответствующего значения во втором столбце?
таблица выглядит следующим образом:
user_id | Student_id | Total_marks
U001 | S0001 | 56
U004 | S0002 | 72
U001 | S0003 | 60
U003 | S0004 | 32
U004 | S0005 | 45
Я пробовал:
select User_id,sum(Total_marks)/ sum(nullif(NumberOFNOTNULL,0)) as avgmarks from [ABC_transctn] where sub_code='some_subject' and User_id!='' group by user_id
Это дает следующее сообщение об ошибке:
Msg 8117, уровень 16, состояние 1, строка 1 Операнд данные Тип varchar недействителен для оператора сумм. Msg 207, уровень 16, состояние 1, строка 1 Недопустимое имя столбца 'NumberOFNOTNULL'. Msg 207, уровень 16, состояние 1, строка 1 Недопустимое имя столбца 'NumberOFNOTNULL'.
Каким будет правильный запрос?
Спасибо Ранджана, но она по-прежнему дает ошибку Msg 8117, Level 16, State 1, Line 1 Операнд типа данных VARCHAR является недействительным для оператора суммы –
Я попробовал это, а также Cast, но затем он не возвращает результат. Просто дает заголовки столбцов. У меня есть данные на месте –