|
Как красиво отобрать первые встретившиеся записи?
|
|||
---|---|---|---|
#18+
можно и одним но фокс вроде тяжко переваривает трехэтажные запросы не уверен что сделает селек из селект плохо работает с рекно() да и груп бай в опции ин может ругаться этого я точно не помню ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2011, 15:51 |
|
Как красиво отобрать первые встретившиеся записи?
|
|||
---|---|---|---|
#18+
Я тут поигрался с данным вопросом, включив в него пару своих функций. Ничего толкового не вышло. Идея была сохранять в массиве номера id обработанных записей. Работает, но криво через SQL-SELECT. Там, видимо, ещё и внутри селекта такая дребедень, которой лучше не касаться. Пришёл к выводу, что это проще делать обычным процедурным способом. Индексирование (по UNIQUE ?), выбор, запись куда-нить. Селект он хорош, однакож "о сколько нам открытий чудных готовит..." :) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2011, 17:05 |
|
Как красиво отобрать первые встретившиеся записи?
|
|||
---|---|---|---|
#18+
sWinTyzможно и одним но фокс вроде тяжко переваривает трехэтажные запросы не уверен что сделает селек из селект плохо работает с рекно() да и груп бай в опции ин может ругаться этого я точно не помню Для начал, если Вы создали уникальный идентификатор, то зачем все остальные "пляски с бубном" по объединению с дополнительным полем? Чем Вас не устравает минимальное значение самого уникального идентификатора? Он на то и уникален. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Следующий вопрос. А почему Вы решили что в таблице нет уникального идентификатора? Потому что его не было в исходной постановке? Так вроде автора вопроса мое решение основанное как раз на существовании уникального идентификатора вполне устроило. Т.е. идентификатор все-таки есть. Наконец, подзапросы в VFP9 делать уже можно. В старых версиях действительно нельзя было. В данном случае, можно пропустить вторую выборку Код: plaintext
Только опять же, а зачем? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2011, 20:31 |
|
Как красиво отобрать первые встретившиеся записи?
|
|||
---|---|---|---|
#18+
2ВладимирМ да ладно бог с ним ... давно я шашки в руках не держал еще с гражданской спасибо за полученное удовольствие а можно вопрос ? чем сейчас такой маститый фокспрошник занимается? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2011, 09:53 |
|
Как красиво отобрать первые встретившиеся записи?
|
|||
---|---|---|---|
#18+
кстати мои последние запросы несколько отличаются от последнего поста Вашего ну да не важно желание спорить совсем нет ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2011, 09:56 |
|
Как красиво отобрать первые встретившиеся записи?
|
|||
---|---|---|---|
#18+
Код: plaintext
ну вот как то не устраивает даже сам не пойму почему, привычка наверное ищу именно первую запись по индексу, а потом уже обеспечиваю уникальность , а не просто беру первую по порядку следования записей в таблице в приделах группировки ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2011, 10:17 |
|
Как красиво отобрать первые встретившиеся записи?
|
|||
---|---|---|---|
#18+
Засомневался насчет скорости предложенных вариантов, решил померить. Исходники тутclear Код: plaintext 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.
У меня результаты такие: Test1 (select ... where not exists) - 98 сек среднее (тут большие разбеги по времени 74, 106 и 118, непонятно отчего замедление) Test2 (SCAN без индекса) - 17,5 сек Test3 (SCAN c индексом) - 212 сек Test4 (два селекта) - 15,8 сек В итого при наличии ID выигрывает вариант предложенный sWinTyz, при отсутствии ID - он дольше (22 сек) чем мой вариант со сканом. Очень удивила скорость скана при включенном индексе, не думал что настолько медленнее будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2011, 10:46 |
|
Как красиво отобрать первые встретившиеся записи?
|
|||
---|---|---|---|
#18+
опыт не пропьешь .... замечание : тут еще важен порядок исполнения методов если это все происходило в одной процедуре конечно фокс работает то ли со стеком памяти то ли еще с чем то ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2011, 11:24 |
|
Как красиво отобрать первые встретившиеся записи?
|
|||
---|---|---|---|
#18+
USE .. INDEX ON id TO tst UNIQUE BROWSE ... |
|||
:
Нравится:
Не нравится:
|
|||
11.03.2013, 20:11 |
|
Как красиво отобрать первые встретившиеся записи?
|
|||
---|---|---|---|
#18+
Предположительно, если первый столбец был уникальным ключом recno, select field1,field2 from table group by field1,field2(?) having recno=min(recno) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2015, 11:33 |
|
|
start [/forum/topic.php?fid=41&msg=37499658&tid=1581604]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
46ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
others: | 266ms |
total: | 414ms |
0 / 0 |