|
Запрос по телефонным кодам стран
|
|||
---|---|---|---|
#18+
Приветствую форумчан! Есть файл с телефонными кодами операторов/городов/стран. Для примера: Направление КодMoldova-fix 810373Moldova-Mobile Moldcell 81037376Moldova-Mobile Moldcell 81037378Moldova-Mobile Moldcell 81037379Moldova-Mobile Orange 81037360Moldova-Mobile Orange 810373610Moldova-Mobile Orange 810373611Moldova-Mobile Orange 810373620Moldova-Mobile Orange 810373621Moldova-Mobile Orange 81037368Moldova-Mobile Orange 81037369 Запрос по каждому направлению типа такого: Код: 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. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37.
Хотелось бы как-то облегчить такую задачу. Направления и коды допустим я загоню в таблицу, это не проблема. Проблема в том, что много пересекающихся кодов. И даже в конкретном примере - для каждого оператора ("Moldcell", "Orange") надо подставлять свои коды, а для Fix'ы эти самые коды убирать из выборки. Кроме того, встречаются коды абсолютно разной длины и абсолютно разных пересечений, вроде того что: Направление КодRussia-Mobile Beeline 810790205Russia-Mobile Beeline 810790206Russia-Mobile Beeline 810790207Russia-Mobile Beeline 810790252Russia-Mobile Beeline 8107902553Russia-Mobile Beeline 8107902554Russia-Mobile Beeline 8107902555Russia-Mobile Beeline 8107902556Russia-Mobile Beeline 8107902557Russia-Mobile Beeline 8107902559Russia-Mobile Beeline 8107902710Russia-Mobile Beeline 8107902717 А остальные 8107902 - это Теле-2. Или какие-то из серии 8107902 могут быть еще третьего оператора. Помогите с мыслями и направлением, как бы это всё автоматизировать для селекта суммы минут по каждому направлению. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2022, 16:15 |
|
Запрос по телефонным кодам стран
|
|||
---|---|---|---|
#18+
Код: 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. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38.
SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2022, 17:30 |
|
Запрос по телефонным кодам стран
|
|||
---|---|---|---|
#18+
Ух! Посижу теперь поразбираюсь в конструкции, чтобы понять. Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2022, 17:33 |
|
Запрос по телефонным кодам стран
|
|||
---|---|---|---|
#18+
Alexander Warlord Кроме того, встречаются коды абсолютно разной длины и абсолютно разных пересечений, вроде того что: Направление КодRussia-Mobile Beeline 810790205Russia-Mobile Beeline 810790206Russia-Mobile Beeline 810790207Russia-Mobile Beeline 810790252Russia-Mobile Beeline 8107902553Russia-Mobile Beeline 8107902554Russia-Mobile Beeline 8107902555Russia-Mobile Beeline 8107902556Russia-Mobile Beeline 8107902557Russia-Mobile Beeline 8107902559Russia-Mobile Beeline 8107902710Russia-Mobile Beeline 8107902717 А остальные 8107902 - это Теле-2. Или какие-то из серии 8107902 могут быть еще третьего оператора. Что будете делать, когда есть конкретные телефонные номера, не укладывающиеся ни в какие правила? Например, 810791632145678 - Билайн 810797732145678 - Мегафон 810792632145678 - МТС 810790332145678 - Теле2 Это обычные последствия преодоления "мобильного рабства", когда абонент со своим номером переходит к другому оператору. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2022, 17:49 |
|
Запрос по телефонным кодам стран
|
|||
---|---|---|---|
#18+
Думал про это. Но на деле статистика таких номеров абсолютно не влияет на общую статистику. Вероятно переходы фиксируются в некоей БД, где в качестве принадлежности номера выступает некий идентификатор, а не код оператора. Но к таким данным у меня доступа нет, поэтому откладываем сей вопрос :) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2022, 18:02 |
|
Запрос по телефонным кодам стран
|
|||
---|---|---|---|
#18+
SY, вместо having прописать where like ... не луче ли будет? меньше группировать ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2022, 18:23 |
|
Запрос по телефонным кодам стран
|
|||
---|---|---|---|
#18+
я б сделал так: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
тестовая таблица с нужным индексом Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
план Код: 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. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51.
еще возможно хорошо было бы сделать функцию с result_cache возвращающую макс длину range, чтобы в подзапрос передавать уже не полный номер, а только substr(phone,1,max_range_length()) для scalar subquery caching ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2022, 19:47 |
|
Запрос по телефонным кодам стран
|
|||
---|---|---|---|
#18+
Match recognize: Код: 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. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87.
SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2022, 21:06 |
|
|
start [/forum/topic.php?fid=52&msg=40134038&tid=1879520]: |
0ms |
get settings: |
26ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
47ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
222ms |
get tp. blocked users: |
2ms |
others: | 2297ms |
total: | 2634ms |
0 / 0 |