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

start [/forum/topic.php?fid=52&tablet=1&tid=1883755]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
43ms |
get topic data: |
8ms |
get forum data: |
3ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 234ms |
| total: | 349ms |

| 0 / 0 |
