|
|
|
Помогите с запросом! Поиск количества вхождений в строку для каждого значения таблицы
|
|||
|---|---|---|---|
|
#18+
Товарищи, помогите пожалуйста! Мне кажется всё просто, но почему-то не могу.. Необходимо найти количество вхождений (p.combination_value) в (e.phone_number) для каждого значения (p.combination_value). В employess будет 20т. записей в combination будет 600 записей Код: plsql 1. 2. 3. 4. В таком случае получается декартово произведение, т.к. таблички не связаны. Как это можно красиво обыграть? Или всё-таки необходимо писать на PL/SQL, что-то вроде такого? но тогда очень долго бегает .. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2018, 15:11 |
|
||
|
Помогите с запросом! Поиск количества вхождений в строку для каждого значения таблицы
|
|||
|---|---|---|---|
|
#18+
student18Необходимо найти количество вхождений (p.combination_value) в (e.phone_number) для каждого значения (p.combination_value). В employess будет 20т. записей в combination будет 600 записей Код: plsql 1. 2. 3. 4. В таком случае получается декартово произведение, т.к. таблички не связаны. Как это можно красиво обыграть? Разве это не условие соединения? Кроме того, декактово произведение - это не абсолютное зло... :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2018, 15:15 |
|
||
|
Помогите с запросом! Поиск количества вхождений в строку для каждого значения таблицы
|
|||
|---|---|---|---|
|
#18+
SQL*Plus, ну это опечатался случайно) И пример специально тестовый, чтобы не нагружать большим обьемом. Просто получается очень долгий запрос, хотя COST незначительная ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2018, 15:20 |
|
||
|
Помогите с запросом! Поиск количества вхождений в строку для каждого значения таблицы
|
|||
|---|---|---|---|
|
#18+
student18, combination_value = '22' какой count должен дать на phone_number = '222'? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2018, 15:22 |
|
||
|
Помогите с запросом! Поиск количества вхождений в строку для каждого значения таблицы
|
|||
|---|---|---|---|
|
#18+
Dshedoo, нужно посчитать сколько emp_id подходят для текущего шаблона. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2018, 15:25 |
|
||
|
Помогите с запросом! Поиск количества вхождений в строку для каждого значения таблицы
|
|||
|---|---|---|---|
|
#18+
student18, Если делать на вхождении LIKE '%' || p.combination_value || '%', а не с начала например LIKE p.combination_value || '%', то прям быстрым тяжело сделать аналог like '%'|| p.combination_value || '%' может быть instr(e.phone_number,p.combination_value) >0 - но тоже думаю не самая быстрая операция Можно попробовать наложить пред обработку на e.phone_number что бы вывести на = или хотя бы LIKE p.combination_value || '%' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2018, 15:30 |
|
||
|
Помогите с запросом! Поиск количества вхождений в строку для каждого значения таблицы
|
|||
|---|---|---|---|
|
#18+
student18Dshedoo, нужно посчитать сколько emp_id подходят для текущего шаблона. шаблона - ? combination_value может быть null ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2018, 15:38 |
|
||
|
Помогите с запросом! Поиск количества вхождений в строку для каждого значения таблицы
|
|||
|---|---|---|---|
|
#18+
MaximaXXL, спасибо) как и говорил тут тестовые скрипты. А так "phone_number" (фактически это конечно другое поле) вообще CLOB =)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2018, 15:42 |
|
||
|
Помогите с запросом! Поиск количества вхождений в строку для каждого значения таблицы
|
|||
|---|---|---|---|
|
#18+
MaximaXXL, шаблона - ? - e.phone_number LIKE '%' || p.combination_value || '%' , ну это имелось ввиду) combination_value может быть null ? - нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2018, 15:44 |
|
||
|
Помогите с запросом! Поиск количества вхождений в строку для каждого значения таблицы
|
|||
|---|---|---|---|
|
#18+
student18SQL*Plus, ну это опечатался случайно) И пример специально тестовый, чтобы не нагружать большим обьемом. Просто получается очень долгий запрос , хотя COST незначительная Ничего удивительного. Такое условие обрабатывается методом NESTED LOOPS, я думаю. Взяли первый e.phone_number и "примерили" к нему ВСЕ c.combination_value - 600 штук. Взяли второй e.phone_number и "примерили" к нему ВСЕ c.combination_value - 600 штук. Взяли третий e.phone_number и "примерили" к нему ВСЕ c.combination_value - 600 штук. ... Взяли 20000-й e.phone_number и "примерили" к нему ВСЕ c.combination_value - 600 штук. Итого выполнили 12 000 000 "примерок". Это не мгновенно делается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2018, 16:31 |
|
||
|
Помогите с запросом! Поиск количества вхождений в строку для каждого значения таблицы
|
|||
|---|---|---|---|
|
#18+
SQL*Plus, всем спасибо! Вообщем, может кому будет интересно или полезно, меня буквально выручил dbms_lob.instr Поиск по CLOB значительно быстрее. Получил результат в 5 раз быстрее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2018, 11:50 |
|
||
|
Помогите с запросом! Поиск количества вхождений в строку для каждого значения таблицы
|
|||
|---|---|---|---|
|
#18+
student18Вообщем, может кому будет интересно или полезно Вряд ли. Обычный instr ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2018, 13:08 |
|
||
|
|

start [/forum/topic.php?fid=52&gotonew=1&tid=1883755]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
158ms |
get topic data: |
9ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 258ms |
| total: | 512ms |

| 0 / 0 |
