【发布时间】:2020-09-16 22:53:26
【问题描述】:
我正在尝试使用撇号旋转一列,但这在 DBT 中非常困难。有任何想法吗?我尝试了双引号,但 dbt 没有选择这个,我不能在数据透视中使用 like 语句。
{% set pvt_details=[
('General liability cover_rated_premium' , 'gl_premium')
, ('Contractors' errors and omissions cover_rated_premium','eo_premium') ] %}
WITH filtered AS (
SELECT
quote_id
, target
, premium_after_amount
from {{ source('acdc', 'chopin_quote_rating_steps') }} cqrs
WHERE target IN ({% for column in pvt_details %} '{{column[0]}}' {%- if not loop.last -%}
, {%- endif %}
{% endfor %})
AND action = 'initial_premium'
)
select *
from filtered
pivot(sum(premium_after_amount)
for target in ({% for column in pvt_details %} '{{column[0]}}' {%- if not loop.last -%} ,
{%- endif %}
{% endfor %}))
as p (quote_id,
{% for column in pvt_details %} {{column[1]}} {%- if not loop.last -%} , {%- endif
%}
{% endfor %})
【问题讨论】:
-
您已将此标记为 SQL - 您可以指定其他信息,例如发行版 + 版本吗?即 Postgres 11.8、SQL Server 2017 等
-
如果这是 Postgres,您可能会发现以下内容很有帮助:stackoverflow.com/a/9170637/3073340,“双引号以转义它们”。只是一个想法 - 对情况了解不够,无法提供更多见解。