У меня есть несколько массивов, хранящихся в "транзакциях" таблицы Redshift в следующем формате:
id, total, breakdown
1, 100, [50,50]
2, 200, [150,50]
3, 125, [15, 110]
...
n, 10000, [100,900]
Поскольку этот формат для меня бесполезен, мне нужно немного обработать его, чтобы получить значения. Я пытался использовать регулярное выражение для его извлечения.
SELECT regexp_substr(breakdown, '\[([0-9]+),([0-9]+)\]')
FROM transactions
но я получаю сообщение об ошибке, которое говорит
Unmatched ( or \(
Detail:
-----------------------------------------------
error: Unmatched ( or \(
code: 8002
context: T_regexp_init
query: 8946413
location: funcs_expr.cpp:130
process: query3_40 [pid=17533]
--------------------------------------------
В идеале я хотел бы получить x и y как свои собственные столбцы, чтобы я мог выполнить соответствующую математику. Я знаю, что могу сделать это довольно легко на python, PHP или чем-то подобном, но меня интересует чистое решение SQL - отчасти потому, что я использую онлайн-редактор SQL (Mode Analytics), чтобы легко отображать его как панель инструментов.
Спасибо за вашу помощь!