|
|
|
Помогите с запросиком (аналитическая функция???)
|
|||
|---|---|---|---|
|
#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. Нужно построить запрос, который возвращает id всех строки таблички, за исключением "повторов", т.е. для "повторов" только первую строку вернуть нужно. И запрос должен быть вида: Код: 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. т.е. <Условие> нужно прописать. Уточнения: "Первая" - это та, у которой d наименьшее, при равных d - c минимальным id (id уникальны). "Повторами" считаются записи внутри календарных суток с одинаковым idx , однако, если встретилась строка с FLAG =1, то "забываем" про повтор. Поясню на примере для idx=7: строку с id=4 нужно вывести в отчет, а строки с id in (4,6,7) - нет, это "повторы". Кроме того, строку с id=16 тоже нужно вывести в отчет, т.к. между строками 4 и 16 имеются строки с FLAD=1 (id=8, 10). Строку 17 снова не выводим - это "повтор" 16. Сам пробовал через Код: plsql 1. т.е. для строки смотрим - по группе с таким же idx берем только первую, однако мозг сломал, как мне FLAG=1 тут учесть... По идее, нужно группы еще разбить по моменту появления FLAG=1, но что-то не врублюсь как. Помогите, пожалуйста, если не сложно. PS структура данных и запрос - не мои, приходится "вписываться" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2018, 15:08 |
|
||
|
Помогите с запросиком (аналитическая функция???)
|
|||
|---|---|---|---|
|
#18+
KOT MATPOCKuHесли встретилась строка с FLAG =1, то "забываем" про повтор.STFF start_of_group. Например Код: plsql 1. KOT MATPOCKuHСам пробовал через Код: plsql 1. Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2018, 15:18 |
|
||
|
Помогите с запросиком (аналитическая функция???)
|
|||
|---|---|---|---|
|
#18+
Elic, не отразил, как это "засунуть" в запрос вместо "Условие" ? Ведь так же не напишешь Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2018, 15:26 |
|
||
|
Помогите с запросиком (аналитическая функция???)
|
|||
|---|---|---|---|
|
#18+
KOT MATPOCKuHкак это "засунуть" в запрос вместо "Условие" ?Никак. Нужны inline view. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2018, 15:32 |
|
||
|
Помогите с запросиком (аналитическая функция???)
|
|||
|---|---|---|---|
|
#18+
idx бывают 0 .. 255 может это как-то поможет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2018, 15:32 |
|
||
|
Помогите с запросиком (аналитическая функция???)
|
|||
|---|---|---|---|
|
#18+
KOT MATPOCKuHможет это как-то поможет?Спроси у астрологов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2018, 15:39 |
|
||
|
Помогите с запросиком (аналитическая функция???)
|
|||
|---|---|---|---|
|
#18+
Elic, Логично, фигню спросил ))) FLAG=0 обычно с idx=0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2018, 16:15 |
|
||
|
Помогите с запросиком (аналитическая функция???)
|
|||
|---|---|---|---|
|
#18+
т.е. если бы в группу по idx можно было кроме записей с idx=idx еще и добавить с idx=0 ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2018, 16:18 |
|
||
|
Помогите с запросиком (аналитическая функция???)
|
|||
|---|---|---|---|
|
#18+
KOT MATPOCKuHPS структура данных и запрос - не мои, приходится "вписываться"Subquery с вытекающей гибкостью, но тормознутостью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2018, 17:25 |
|
||
|
Помогите с запросиком (аналитическая функция???)
|
|||
|---|---|---|---|
|
#18+
KOT MATPOCKuH, Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2018, 22:33 |
|
||
|
Помогите с запросиком (аналитическая функция???)
|
|||
|---|---|---|---|
|
#18+
Надо было сначала Elic-a почитать Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2018, 23:36 |
|
||
|
Помогите с запросиком (аналитическая функция???)
|
|||
|---|---|---|---|
|
#18+
SkilledJuniorНадо было сначала Elic-a почитать Код: plsql 1. Недочитал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2018, 08:38 |
|
||
|
Помогите с запросиком (аналитическая функция???)
|
|||
|---|---|---|---|
|
#18+
ElicНедочитал. Насколько я понял автора топика, триггерная только единица и могут быть значения отличные от 0 и 1. KOT MATPOCKuHidx бывают 0 .. 255 может это как-то поможет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2018, 14:40 |
|
||
|
Помогите с запросиком (аналитическая функция???)
|
|||
|---|---|---|---|
|
#18+
Пардон невнимательно прочитал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2018, 14:43 |
|
||
|
Помогите с запросиком (аналитическая функция???)
|
|||
|---|---|---|---|
|
#18+
Как решить с помощью start_of_group? У меня только такой вариант вышел. Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2018, 21:01 |
|
||
|
Помогите с запросиком (аналитическая функция???)
|
|||
|---|---|---|---|
|
#18+
rushchelКак решить с помощью start_of_group? У меня только такой вариант вышел.row_number() нужно считать с учётом групп на основе flag. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2018, 21:16 |
|
||
|
Помогите с запросиком (аналитическая функция???)
|
|||
|---|---|---|---|
|
#18+
KOT MATPOCKuH, Мне в голову только такое пришло, хотя пн. утро - я еще сплю Может что и не дочитал в условии Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2018, 11:07 |
|
||
|
Помогите с запросиком (аналитическая функция???)
|
|||
|---|---|---|---|
|
#18+
MaximaXXLне дочитал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2018, 11:26 |
|
||
|
Помогите с запросиком (аналитическая функция???)
|
|||
|---|---|---|---|
|
#18+
Почему непременно аналитикой-то? pattern matching жеж прям-таки просится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2018, 11:41 |
|
||
|
Помогите с запросиком (аналитическая функция???)
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousПочему непременно аналитикой-то? pattern matching жеж прям-таки просится. А ну ка сбацай =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2018, 11:53 |
|
||
|
Помогите с запросиком (аналитическая функция???)
|
|||
|---|---|---|---|
|
#18+
ElicMaximaXXLне дочитал Я так и знал, вот выпил кофе и получилось вот такое: Код: 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. умножал на 1000, потому что так нагляднее и это при условии что автор утверждает что KOT MATPOCKuHidx бывают 0 .. 255 может это как-то поможет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2018, 11:55 |
|
||
|
Помогите с запросиком (аналитическая функция???)
|
|||
|---|---|---|---|
|
#18+
MaximaXXL, Код: plsql 1. вот это забыл, просто пример был только за 1 дату ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2018, 12:07 |
|
||
|
Помогите с запросиком (аналитическая функция???)
|
|||
|---|---|---|---|
|
#18+
MaximaXXL, Фигня в том, что не могу я в запросе кроме как <Условие> что-то вставлять. Ограничение на <Условие> только одно: 2к байт. Если интересно объясню: 1) запрос этот делаю не я, он такой зашит в систему, править не могу. <Условие> - подставляется динамоэскуэлем из некой таблички - в нее могу вносить записи с нужным критерием. Собственно это и является самым жестким критерием поставленной здесь задачки 2) Данные - падают из другой системы, это события некого оборудования, которые приходят в БД (исходную) разными путями. Время - это время поступления их в ту БД, поэтому, в таблице много дублей, которые, по сути, и хочется отсечь. Объем - в день несколько лямов строк. Пока я проблему решил простым способом - создал функцию, которую и вызываю в <Условие>. Производительность оставляет желать лучшего... Однако хотелось бы ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2018, 12:12 |
|
||
|
Помогите с запросиком (аналитическая функция???)
|
|||
|---|---|---|---|
|
#18+
KOT MATPOCKuH, А можете создать view и на нее натравить свой запрос? Или это тоже прибито гвоздями? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2018, 12:26 |
|
||
|
Помогите с запросиком (аналитическая функция???)
|
|||
|---|---|---|---|
|
#18+
"Все уже украдено до нас" Elic Код: plsql 1. Код: plsql 1. Другие варианты получаются из разряда 100 верст не крюк)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2018, 12:39 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39727908&tid=1883227]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
179ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
71ms |
get tp. blocked users: |
1ms |
| others: | 243ms |
| total: | 536ms |

| 0 / 0 |
