I'm trying to use a dbt macro to transform survey results.
I have a table similar to:
| column1 | column2 |
|---|---|
| often | sometimes |
| never | always |
| ... | ... |
I want to transform it into:
| column 1 | column 2 |
|---|---|
| 3 | 2 |
| 1 | 4 |
| ... | ... |
using the following mapping:
| category | value |
|---|---|
| always | 4 |
| often | 3 |
| sometimes | 2 |
| never | 1 |
To do so I have written the following sbt macro:
{% macro class_to_score(class) %}
{% if class == "always" %}
{% set result = 1 %}
{% elif class == "often" %}
{% set result = 2 %}
{% elif class == "sometimes" %}
{% set result = 3 %}
{% elif class == "never" %}
{% set result = 4 %}
{% endif -%}
{{ return(result) }}
{% endmacro %}
and then the following sql query:
{%- set class_to_score = class_to_score -%}
select
{{ set_class_to_score(column1) }} as column1_score,
from
table
However, I get the error:
Syntax error: SELECT list must not be empty at [5:1]
Anyone know why I am not getting anything back?