我是一名数字营销经理,正在尝试将我的广告系列细分为切片分析。我的广告系列列在一列中,如下所示。
FR-SRC-PLATFORM | MISC {bw}
FR-SRC-M2M sim | Sim {bw}
ES-SRC-IOT | Connectivity {e}
我想先将每个分开 - 然后|然后在{。
结果是
Cola | Colb | Colc | Col d | Col e
fr | SRC | Platform| Misc | {bw}
我发现以下公式有效,但只有一个问题......
SELECT split_part(your_col,'-',1) cola,
split_part(your_col,'-',2) colb,
split_part(split_part(your_col,'-',2),' | ',1) colc,
split_part(split_part(your_col,' | ',2),' {',1) cold,
split_part(split_part(your_col,'{',2),'}',1) cole
/* or
split_part(your_col,'{',2) cole
*/
FROM your_table
有时我的广告系列会有不同的结构(更多的关键字),导致更多的标准被|分隔符号。作为例子; ES-SRC-IOT |连通性| SIM |美国{e}。理论上我想保留第一个|之间的所有内容并且首先{在同一列中。
有没有办法挽救这个公式,还是我应该从头开始搜索某些东西?
先谢谢你。
谢谢
答案 0 :(得分:0)
如果您熟悉import { coins } from './coins'
:
plpgsql
结果:
╔═══════════════════════════════════════════╤══════╤══════╤══════════╤══════════════════════════╤══════╗ ║ x │ cola │ colb │ colc │ cold │ cole ║ ╠═══════════════════════════════════════════╪══════╪══════╪══════════╪══════════════════════════╪══════╣ ║ FR-SRC-PLATFORM | MISC {bw} │ FR │ SRC │ PLATFORM │ MISC │ {bw} ║ ║ FR-SRC-M2M sim | Sim {bw} │ FR │ SRC │ M2M sim │ Sim │ {bw} ║ ║ ES-SRC-IOT | Connectivity {e} │ ES │ SRC │ IOT │ Connectivity │ {e} ║ ║ ES-SRC-IOT | Connectivity | SIM | USA {e} │ ES │ SRC │ IOT │ Connectivity | SIM | USA │ {e} ║ ╚═══════════════════════════════════════════╧══════╧══════╧══════════╧══════════════════════════╧══════╝
如果您发现另一个数据案例,那么调整函数逻辑将非常简单。
答案 1 :(得分:0)
我会选择regex substring
with e AS ( VALUES ('FR-SRC-PLATFORM | MISC {bw}')
,('FR-SRC-M2M sim | Sim {bw}')
,('ES-SRC-IOT | Connectivity {e}')
,('AXE|SPADE|SHOVEL{test}')
)
SELECT column1,substring(column1 from $$^([^|]*)\|$$ ) as a
,substring(column1 from $$^[^|]*\|([^{]*)$$ ) as b
,substring(column1 from $x$[{](.*)[}]$$x$ ) as c
FROM e;
给出
column1 | a | b | c
------------------------------+------------------+----------------+------
FR-SRC-PLATFORM | MISC {bw} | FR-SRC-PLATFORM | MISC | bw
FR-SRC-M2M sim | Sim {bw} | FR-SRC-M2M sim | Sim | bw
ES-SRC-IOT | Connectivity {e} | ES-SRC-IOT | Connectivity | e
AXE|SPADE|SHOVEL{test} | AXE | SPADE|SHOVEL | test