|
pagination, java, jdbc, Generic sql
|
|||
---|---|---|---|
#18+
Нужно реализовать сортировку по дате принятия на работу(hiredate(типа DATE)), не используя limit, offset, top, rownumber() Я попытался пронумеровать строки и, отталкиваясь от этого сделать выборку. Помогите, пожалуйста, найти ошибки. Так как я понимаю, что решение далеко неправильное. Или же может быть предложите своё решение:) Код: sql 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2020, 01:17 |
|
pagination, java, jdbc, Generic sql
|
|||
---|---|---|---|
#18+
colacoca, При чём тут Java? :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2020, 06:24 |
|
pagination, java, jdbc, Generic sql
|
|||
---|---|---|---|
#18+
mad_nazgul, Вопрос изначально был в другом формате, я его отредактировал и забыл выбрать другую тему. В любому случае вопрос относится к JDBC, т.к. вместо "?" надо поставить условие пагинации. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2020, 09:40 |
|
pagination, java, jdbc, Generic sql
|
|||
---|---|---|---|
#18+
colacoca, Нет. Идите в форум бд и сделайте рабочий запрос. Потом тут просто подставите вопросики где надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2020, 10:11 |
|
pagination, java, jdbc, Generic sql
|
|||
---|---|---|---|
#18+
colacoca count (test_2.HIREDATE) as rank Дичь colacoca group by test_1.HIREDATE еще большая дичь и нарушение синтаксиса SQL, о чем база должна сообщать colacoca Нужно реализовать сортировку по дате принятия на работу(hiredate(типа DATE)) 1. Во вложенном запросе: row_number() over(ORDER BY HIREDATE) as rank никаких group by или order by 2. Во внешнем запросе: WHERE rank... ORDER BY rank IMHO могу ошибаться, не проверял Разумеется, будет работать только в СУБД, которые поддерживают аналитические ф-ции ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2020, 11:38 |
|
pagination, java, jdbc, Generic sql
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev, Изначально написал, что субд не поддерживает row_number() ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2020, 11:44 |
|
pagination, java, jdbc, Generic sql
|
|||
---|---|---|---|
#18+
colacoca что субд не поддерживает row_number() а как Вы собираетесь реализовывать "пронумеровать строки" ? почему count() ? почему не min / max / sum / avg... и 100500 других слов английского языка ? не говоря уже о банальных ошибках синтаксиса Если Java, то ORDER BY HIREDATE и результат for'ами, for'ами. Для пагинации на стороне клиента ничего пронумеровывать не нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2020, 11:55 |
|
pagination, java, jdbc, Generic sql
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev, У меня есть 2 шаблона из разных примеров 1) Как можно пронумеровать строки Код: sql 1. 2. 3. 4. 5.
2)Как реализовать пагинацию. Т.к. row_number мне не подходит я постарался соединить шаблон 1 со 2. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Я постарался эти шаблоны применить к моему случаю, но не смог, поэтому попросил помощи ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2020, 12:19 |
|
pagination, java, jdbc, Generic sql
|
|||
---|---|---|---|
#18+
colacoca 1) Как можно пронумеровать строки Код: sql 1. 2. 3. 4. 5.
вот же есть извращенцы ))) но в данном примере: 1) считаются уникальные ID'шники идущие в базе данных после текущей записи. HIREDATE на такое не тянет, нужен ID'шник или уникальная связка 2) нет ошибки синтаксиса в GROUP BY В GROUP BY должны перечислять все поля, которые в запросе идут без агрегатной ф-ции т.е. у Вас это: test_1.ID, test_1.FIRSTNAME, test_1.LATNAME, test_1.MIDDLENAME, test_1.POSITION, test_1.MANAGER, test_1.HIREDATE, test_1.SALARY, test_1.DEPARTMENT декартово произведение ради того, что бы пронумеровать строки.... ну не знаю.... лично у меня на такое даже воображения не хватает Ну и если я правильно понимаю "замысел", то для не уникальных полей (типа HIREDATE) все равно никакой "пронумеровать строки" не получится. Могу ошибаться. Воображения не хватает. Хотя, не спорю, что данную идею вполне можно развить на составной ключ или связку полей ( HIREDATE, ID ). Но мне кажется это академическая задача, ни имеющая никакой практической ценности. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2020, 12:51 |
|
pagination, java, jdbc, Generic sql
|
|||
---|---|---|---|
#18+
colacoca Я постарался эти шаблоны применить к моему случаю, но не смог 1) у "не смог", как минимум есть сообщение об ошибке 2) ну и "для странных" задач, желательно указывать отчего такие странные желания возникают. Если это студенческая задача ни имеющая практической ценности и преподавать-самодур, это одно. Если практическая - то совершенно другое. Ну и к теме топика " pagination, java, jdbc, Generic sql " это никакого отношения не имеет. Т.к. в реальной жизни, пагинацию можно сделать 100500 других способов ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2020, 12:57 |
|
pagination, java, jdbc, Generic sql
|
|||
---|---|---|---|
#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. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2020, 15:31 |
|
pagination, java, jdbc, Generic sql
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev, Спасибо, попробую! ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2020, 18:45 |
|
pagination, java, jdbc, Generic sql
|
|||
---|---|---|---|
#18+
Не забудьте про тот факт что БД - это разделяемый ресурс и пока вы делаете pagination, таблица может изменится. И листинг следующей страницы может внезапно показать либо часть строк предыдущей либо потерять часть строк которые "отъехали" назад из за удалений. Вобщем я редко встречал грамотно реализованную pagination на изоляции сессий. P.S. Если дойдете до Pagination конешно. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2020, 19:07 |
|
|
start [/forum/topic.php?fid=59&msg=40017112&tid=2120618]: |
0ms |
get settings: |
25ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
269ms |
get tp. blocked users: |
1ms |
others: | 289ms |
total: | 661ms |
0 / 0 |