powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Можно ли посчитать среднее значение чисел,находящихся в скобках и повторяющихся в строке?
6 сообщений из 6, страница 1 из 1
Можно ли посчитать среднее значение чисел,находящихся в скобках и повторяющихся в строке?
    #39617738
arelsom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот к примеру в столбце phones хранятся такие данные:

9113333333[3],
9150000000[5], 9200000000[4], 9201111111[1],
9811111111[7], 9118888888[1],


Можно ли посчитать средние значения того, что в квадратных скобках?

!Через regexp_count не получается, так как стоит oracle 10g. Кто нибудь может помочь? Какой ещё способ для такого подсчёта?
...
Рейтинг: 0 / 0
Можно ли посчитать среднее значение чисел,находящихся в скобках и повторяющихся в строке?
    #39617740
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
arelsomКакой ещё способ для такого подсчёта?

Пойти к чудаку, сделавшему такую денормализованную БД, набить ему морду и заставить делать
эту работу ручками, чтобы в следующий раз неповадно было.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Можно ли посчитать среднее значение чисел,находящихся в скобках и повторяющихся в строке?
    #39617746
Фотография Egoр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
3.
4.
5.
select avg(v) over(partition by 1) as v_avg, t.*
  from (select val, to_number(substr(val, pos + 1, instr(val, ']', pos + 1, 1) - pos - 1)) as v, pos
          from (select val, instr(val, '[', 1, level) as pos
                  from (select '234234234234[45]564563453453[456]64356456[4567]75467546745[4567]65534534[5]' as val from dual) v
                connect by instr(val, '[', 1, level) > 0) vv) t
...
Рейтинг: 0 / 0
Можно ли посчитать среднее значение чисел,находящихся в скобках и повторяющихся в строке?
    #39617772
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
arelsomВот к примеру в столбце phones хранятся такие данные:

9113333333[3],
9150000000[5], 9200000000[4], 9201111111[1],
9811111111[7], 9118888888[1],


Можно ли посчитать средние значения того, что в квадратных скобках?

!Через regexp_count не получается, так как стоит oracle 10g. Кто нибудь может помочь? Какой ещё способ для такого подсчёта?
и на 10g можно например функцию написать например на pl/sql ,
только заранее подумайте над вопросом (и сформулируйте внятно ) что именно (и в каких скобках) вы хотите вычислять
...
Рейтинг: 0 / 0
Можно ли посчитать среднее значение чисел,находящихся в скобках и повторяющихся в строке?
    #39617957
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
with t(id, val) as
 (select 1, '9113333333[3]' from dual union all
  select 2, '9150000000[5], 9200000000[4,8], 9201111111[1]' from dual union all
  select 3, '9811111111[7,2], 9118888888[1]' from dual)   
select t3.*,
       avg(skob_val) over(partition by id) avg_by_id,
       avg(skob_val) over() avg_total
  from (select t2.*,
               to_number(substr(val, skob_pos1 + 1, skob_pos2 - skob_pos1 - 1)) skob_val
          from (select t.*,
                       level lvl,
                       instr(val, '[', 1, level) skob_pos1,
                       instr(val, ']', 1, level) skob_pos2
                  from t
                connect by prior id = id
                       and instr(val, '[', 1, level) > 0
                       and prior dbms_random.value is not null) t2) t3

ID VAL                                           LVL SKOB_POS1 SKOB_POS2 SKOB_VAL AVG_BY_ID  AVG_TOTAL
-- --------------------------------------------- --- --------- --------- -------- --------- ----------
 1 9113333333[3]                                   1        11        13        3         3 3,66666666
 2 9150000000[5], 9200000000[4,8], 9201111111[1]   1        11        13        5       3,6 3,66666666
 2 9150000000[5], 9200000000[4,8], 9201111111[1]   2        26        30      4,8       3,6 3,66666666
 2 9150000000[5], 9200000000[4,8], 9201111111[1]   3        43        45        1       3,6 3,66666666
 3 9811111111[7,2], 9118888888[1]                  1        11        15      7,2       4,1 3,66666666
 3 9811111111[7,2], 9118888888[1]                  2        28        30        1       4,1 3,66666666
...
Рейтинг: 0 / 0
Можно ли посчитать среднее значение чисел,находящихся в скобках и повторяющихся в строке?
    #39617994
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
xmlquery(trim('+' from regexp_replace(строка, '^[^[]*\[|\][^[]*\[|][^[]*$','+')) returning content).getnumberval()
                       / regexp_count(строка, '\[\d*\]')
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Можно ли посчитать среднее значение чисел,находящихся в скобках и повторяющихся в строке?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]