|
Запрос по нескольким условиям GROUP BY HAVING
|
|||
---|---|---|---|
#18+
Уважаемые форумчане, приветствую! Есть запрос по нескольким UNION с разными условиями группировки. Тут их 4, но должно быть больше: Код: 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. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125.
Можно ли как-то изменить запрос, чтобы не добавлять для каждого условия HAVING COUNT(cll.CALL_ID) >= ... - новый подзапрос UNION? Условия: 1. TRAF NOT IN (3, 5) SERV_ID <> 166 COUNT(cll.CALL_ID) >= 20 2. TRAF NOT IN (3, 5) SERV_ID = 166 COUNT(cll.CALL_ID) >= 500 3. TRAF NOT = 3 SERV_ID <> 166 COUNT(cll.CALL_ID) >= 100 3. TRAF NOT = 3 SERV_ID = 166 COUNT(cll.CALL_ID) >= 1000 и т.д. Чтобы в одном запросе были учтены все условия. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2020, 11:13 |
|
Запрос по нескольким условиям GROUP BY HAVING
|
|||
---|---|---|---|
#18+
Alexander Warlord, Так тут не только в HAVING COUNT дело, тут ещё и фильтрация перед группировкой разная. Можно попробовать переписать в таком ключе: Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2020, 11:32 |
|
Запрос по нескольким условиям GROUP BY HAVING
|
|||
---|---|---|---|
#18+
а почему общий WITH не напишите для начала? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2020, 13:56 |
|
Запрос по нескольким условиям GROUP BY HAVING
|
|||
---|---|---|---|
#18+
alex-ls а почему общий WITH не напишите для начала? сложно учесть нюасы (граничные условия) ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2020, 14:52 |
|
Запрос по нескольким условиям GROUP BY HAVING
|
|||
---|---|---|---|
#18+
Stax сложно учесть нюасы (граничные условия) Да вроде не так и сложно: Код: 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. 88. 89. 90. 91.
Но может быть обратный эффект с производительностью из-за OR. SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2020, 16:09 |
|
Запрос по нескольким условиям GROUP BY HAVING
|
|||
---|---|---|---|
#18+
Всем большое спасибо! Первый вариант запроса самое то! ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2020, 16:39 |
|
Запрос по нескольким условиям GROUP BY HAVING
|
|||
---|---|---|---|
#18+
SY Stax сложно учесть нюасы (граничные условия) Да вроде не так и сложно: SY. я имел ввиду тестовые данные зы если условия 1. TRAF NOT IN (3, 5) SERV_ID <> 166 2. TRAF NOT IN (3, 5) SERV_ID = 166 3. TRAF NOT = 3 SERV_ID <> 166 4. TRAF NOT = 3 SERV_ID = 166 не пересекаются (а они вроде не пересекаются) то or заменит union all ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2020, 16:52 |
|
|
start [/forum/topic.php?fid=52&fpage=48&tid=1881347]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
137ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
others: | 340ms |
total: | 580ms |
0 / 0 |