#sql #google-bigquery #sum #case
#sql #google-bigquery #сумма #случай
Вопрос:
Данные анкеты (порядковый номер: 1,2,3,4 или 5) в Google BigQuery необходимо извлекать и агрегировать с использованием синтаксиса SQL sum() или avg(). Прежде чем может произойти агрегирование значений такого столбца, необходимо «перекодировать» некоторые порядковые значения (т. Е. Столбцы), например:
- 1 превращается в 5
- 2 превращается в 4
- 3, чтобы осталось 3
- 4, чтобы стать 2
- 5 превращается в 1
Пример, объясняющий ситуацию: исходный сбор данных включал ответ на:
- элементы с позитивными формулировками (item1: «Я люблю свою работу») и
- перевернутые элементы (элемент2: «Я ненавижу свою работу».) Теперь оба значения ответа должны быть логически направлены в одном и том же «направлении», чтобы затем суммировать() в новую переменную «удовлетворенность работой»; требуется перекодировать элемент2.
Как мне это сделать?
Комментарии:
1. Пожалуйста, предоставьте ожидаемый результат!
Ответ №1:
Если это единственные значения, и вы хотите их суммировать, вы можете использовать:
sum(6 - item2)
Ответ №2:
Если я правильно понимаю, вы можете использовать выражение case:
select sum(case item2
when 1 then 5
when 2 then 4
when 3 then 3
when 4 then 2
when 5 then 1
end) sum_item2
from mytable