Используйте SQL для перекодирования значения столбца

#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