Как запросить сумму соответствующего элемента вложенного списка ввода? - PullRequest
0 голосов
/ 11 ноября 2019

Я пытаюсь вывести список списков SUMS с помощью ввода списка списков регулярных выражений. Код (Python с Oracle DB) выглядит примерно так:

**my_query** = """SELECT SUM(col) FROM table t WHERE REGEXP_LIKE(t.col2, {reg_expr})"""
outer_list_of_regex = [[reg1,reg2,reg3],[reg4,reg5,reg6],[reg7,reg8,reg9],[reg10,reg11,reg12]]
list_of_sums = []
for inner_list_of_regex in outer_list_of_regex:
   temp_list = []
   for regex in inner_list_of_regex:
      inner_list.append(**my_query**.format(reg_expr = regex))

Входные данные для запроса представляют собой список списков регулярных выражений. Выходные данные имеют тот же формат, но представляют собой сумму каждогоэлементов, возвращенных в том же формате и соответствующей позиции, что и входные данные. Эта структура прекрасно работает с короткими списками, но как только она масштабируется даже до разумной длины, она слишком медленная для запуска в производство. Есть ли способ перенастроить это без вложенных циклов for?

Например, возможно, один запрос с вложенным списком мог бы вывести суммы для каждого из соответствующих регулярных выражений.

query = """select ([SUM(reg1),SUM(reg2),SUM(reg3)],[SUM(reg4)....]) FROM table t WHERE t.col2 == {outer_list_of_regex}"""
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...