|
Пятничная задача: single from
|
|||
---|---|---|---|
#18+
Имеется таблица с координатами точек. Найти 1. Количество точек в диапазоне +-2 по абсциссе и ординате для каждой точки. 2. Сумму расстояний от каждой точки до всех остальных. Результат можно получить например так Код: 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.
Фишка в том, что в решении слово from может втречаться только один раз . данные Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
PS. Принципиально разных решений несколько. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2022, 23:43 |
|
Пятничная задача: single from
|
|||
---|---|---|---|
#18+
dbms_photoshop from может втречаться только один раз . ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2022, 00:37 |
|
Пятничная задача: single from
|
|||
---|---|---|---|
#18+
Sayan Malakshinov, Без join в любом виде, без inline view и без подзапросов. PS. Да уж, хотел изначально сформулировать покороче... PPS. Вероятно формулровка может быть еще такая: план запроса представляет собой не дерево а список. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2022, 00:50 |
|
Пятничная задача: single from
|
|||
---|---|---|---|
#18+
dbms_photoshop Без join в любом виде, без inline view и без подзапросов. Код: plsql 1.
Выбор-то небольшой остается - connect by и pivot ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2022, 01:10 |
|
Пятничная задача: single from
|
|||
---|---|---|---|
#18+
Можно ограничение описать кратко и абсолютно строго (как мне кажется), но если это сделать, то это будет подсказкой. Хотя это сообщение уже само по себе в некоторой мере является подсказкой. Почти как Cheryl's Birthday ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2022, 01:10 |
|
Пятничная задача: single from
|
|||
---|---|---|---|
#18+
Никанор Кузьмич dbms_photoshop Без join в любом виде, без inline view и без подзапросов. Код: plsql 1.
Типа да. Строгая формулировка ограничения она же частично подсказка в спойлере. В запросе может фигурировать только одно table_reference Никанор Кузьмич Выбор-то небольшой остается - connect by и pivot Никанор Кузьмич P. S. Можно ли решать задачу "графически"? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2022, 01:17 |
|
Пятничная задача: single from
|
|||
---|---|---|---|
#18+
dbms_photoshop Почти как Cheryl's Birthday dbms_photoshop подсказкой я, видимо, упустил что-то между строк, но пока кроме модели (легко) и connect-by ничего элегантного не придумывается... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2022, 01:49 |
|
Пятничная задача: single from
|
|||
---|---|---|---|
#18+
Sayan Malakshinov, Есть еще кроме озвученного тобой в спойлере. Публикуй что есть, подходов хватает. Всем хватит подумать. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2022, 01:55 |
|
Пятничная задача: single from
|
|||
---|---|---|---|
#18+
dbms_photoshop Никанор Кузьмич P. S. Можно ли решать задачу "графически"? Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Вот вам точки, где там +/- 2 единицы от каждой, видно на глаз Как расстояния посчитать, не придумал пока. Надо кому-то объяснять, что это шутка, или все уже сами догадались? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2022, 02:05 |
|
Пятничная задача: single from
|
|||
---|---|---|---|
#18+
Кузьмич, а ты тот еще остряк. PS. На самом деле я собирался сгенерировать на питоне красивую картинку с точками для стартового поста, но у меня на компе не нашлось нужной библиотеки и я испугался что не успею это сделать до конца пятницы по Москве. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2022, 02:30 |
|
Пятничная задача: single from
|
|||
---|---|---|---|
#18+
вроде пришла идея, но что-то не выходит каменный цветочек - какого-то хрена в xmlagg собираются не все... мозги уже не варят... если убрать фильтр на значения в TST можно увидеть что для 2,2 например, не включаются значения с Ч=4: должно быть 1,2,1,2,3,4,1,2,3,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.
Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2022, 04:26 |
|
Пятничная задача: single from
|
|||
---|---|---|---|
#18+
Sayan Malakshinov, Так xmlagg по доке может быть только агрегатной, разве нет? С уникальным id странность результата сразу видна Код: plsql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2022, 13:50 |
|
Пятничная задача: single from
|
|||
---|---|---|---|
#18+
dbms_photoshop С уникальным id странность результата сразу видна Код: plsql 1.
да явный баг...но только на второй и третьей строчках...странная фигня Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
dbms_photoshop Так xmlagg по доке может быть только агрегатной, разве нет? Есть такое: Bug 31613838 - ORA-19214: xmlagg expression is not allowed on 19c (Doc ID 31613838.8) авторDescription Re-enable XMLAgg usage as window function REDISCOVERY INFORMATION: XMLAgg cannot be used as a window function. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2022, 14:19 |
|
Пятничная задача: single from
|
|||
---|---|---|---|
#18+
Воркэраунд, конечно, есть, но какой-то дурацкий: делать только с following и уже их объединять sql Код: 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.
results Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2022, 14:42 |
|
Пятничная задача: single from
|
|||
---|---|---|---|
#18+
пофиг, упрощаем в лоб: простенький xquery Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2022, 01:55 |
|
Пятничная задача: single from
|
|||
---|---|---|---|
#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.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2022, 02:45 |
|
Пятничная задача: single from
|
|||
---|---|---|---|
#18+
connect-by в лоб Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2022, 02:57 |
|
Пятничная задача: single from
|
|||
---|---|---|---|
#18+
Sayan Malakshinov упрощаем в лоб: простенький xquery Только небольшой осадок, что аналитическая версия xmlagg недокументирована. Вторая задача реализуется лишь заменой xquery. Код: plsql 1. 2.
Вероятно, можно короче записать. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2022, 04:59 |
|
Пятничная задача: single from
|
|||
---|---|---|---|
#18+
Sayan Malakshinov элементарная моделька Для второй задачи нам надо в выражении для агрегата ссылаться на текущую строку из левой части правила что невозможно. На мой взгляд это решается только итеративной моделью. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2022, 05:06 |
|
Пятничная задача: single from
|
|||
---|---|---|---|
#18+
Sayan Malakshinov connect-by в лоб У меня было так Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2022, 05:14 |
|
Пятничная задача: single from
|
|||
---|---|---|---|
#18+
В общем, не всё еще исчерпано. Остаётся как минимум модельное решение для второй задачи и еще один совершенно иной подход (упомянутый ранее Кузьмичом 22430088 ). ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2022, 05:19 |
|
Пятничная задача: single from
|
|||
---|---|---|---|
#18+
dbms_photoshop Вероятно, можно короче записать. Код: plsql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2022, 05:39 |
|
Пятничная задача: single from
|
|||
---|---|---|---|
#18+
dbms_photoshop модельное решение для второй задачи Код: 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.
dbms_photoshop еще один совершенно иной подход (упомянутый ранее Кузьмичом 22430088 ). pivot c ограничением на целые или pivot xml? или про что речь? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2022, 21:54 |
|
Пятничная задача: single from
|
|||
---|---|---|---|
#18+
dbms_photoshop dbms_photoshop Вероятно, можно короче записать. Код: plsql 1.
Код: plsql 1.
Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2022, 21:59 |
|
Пятничная задача: single from
|
|||
---|---|---|---|
#18+
еще одно ограниченное решение первой задачи просто аналитическая сумма(range between) + bitand + считаем кол-во битиков-единичек. Ограничения: в данном решении есть ограничение на макс id <=128 из-за маски to_char, но, в принципе, зная макс 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. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2022, 12:21 |
|
|
start [/forum/topic.php?fid=52&msg=40131814&tid=1879522]: |
0ms |
get settings: |
26ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
48ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
418ms |
get tp. blocked users: |
2ms |
others: | 2627ms |
total: | 3156ms |
0 / 0 |