Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
19.05.2016, 08:45
|
|||
---|---|---|---|
|
|||
Запрос на получение разницы между текущим и следующим значением |
|||
#18+
Помогите написать запрос на получение разницы между текущим и следующим значением поля типа времени. Имеется таблица логов, вида ID, Время, Пользователь, Сообщение. Хотел бы получить запрос Время1 - Время2, Пользователь, Сообщение. Для этого, нашёл как пронумеровать результаты запроса (с помощью функции Numeration). Дальше стопорнул... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.05.2016, 08:50
|
|||
---|---|---|---|
Запрос на получение разницы между текущим и следующим значением |
|||
#18+
Есть ли в таблице полные дубликаты по совокупности полей (Время, Пользователь)? как я понимаю, разницу по времени нужно для каждого отдельного пользователя... если же нет - то есть ли в таблице полные дубликаты по полю Время? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.05.2016, 08:59
|
|||
---|---|---|---|
|
|||
Запрос на получение разницы между текущим и следующим значением |
|||
#18+
Akina, полных дубликатов нет. Разницу по времени необходимо получить вида: [10:07 AM] User1 00:04 [10:11 AM] User2 00:33 [10:44 AM] User3 00:01 [10:45 AM] User1 00:00 [10:45 AM] User3 00:01 [10:46 AM] User2 00:01 [10:47 AM] User2 00:01 [10:49 AM] User1 00:02 Дубликаты могут быть (10:45 AM) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.05.2016, 09:16
|
|||
---|---|---|---|
Запрос на получение разницы между текущим и следующим значением |
|||
#18+
Сева Новгородцев , разность надо считать, невзирая на пользователя, или по каждому отдельно? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.05.2016, 09:18
|
|||
---|---|---|---|
Запрос на получение разницы между текущим и следующим значением |
|||
#18+
Впрочем, если дубликаты есть, это уже неважно - нумерация должна выполняться с учётом этого требования. Теперь берите две копии нумерующего запроса, и связывайте их по table1.number = table2.number-1. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.05.2016, 10:26
|
|||
---|---|---|---|
|
|||
Запрос на получение разницы между текущим и следующим значением |
|||
#18+
Akina, не поправите: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.05.2016, 11:00
|
|||
---|---|---|---|
|
|||
Запрос на получение разницы между текущим и следующим значением |
|||
#18+
Может так? Код: sql 1. 2. 3.
П.С. Ну и названия полей у Вас.. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.05.2016, 14:58
|
|||
---|---|---|---|
|
|||
Запрос на получение разницы между текущим и следующим значением |
|||
#18+
Agapov_stas, спасибо за попытку. Требует параметр t1.Numeration(ID) и t2.Numeration(ID). ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.05.2016, 15:03
|
|||
---|---|---|---|
Запрос на получение разницы между текущим и следующим значением |
|||
#18+
Сева Новгородцевне поправите Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.05.2016, 15:05
|
|||
---|---|---|---|
Запрос на получение разницы между текущим и следующим значением |
|||
#18+
Правда, я не понимаю, почему в подзапросах отсутствует сортировка... хотя это зависит от того, что заложено в функцию Numeration(). ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.05.2016, 15:05
|
|||
---|---|---|---|
|
|||
Запрос на получение разницы между текущим и следующим значением |
|||
#18+
Сева Новгородцев , это все Ваши названия полей. Numeration(ID) - это id,number, уникальный идентификатор или что там у Вас и как в таблице, Вам виднее. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.05.2016, 15:09
|
|||
---|---|---|---|
Запрос на получение разницы между текущим и следующим значением |
|||
#18+
А ещё - я бы для нумерации использовал не функцию, а простенький запрос типа Код: vbnet 1. 2. 3. 4.
И оформил бы его статическим запросом, если таблица не очень велика - всё равно результат будет кэшиться, а так по крайней мере подзапрос выполнится гарантированно один раз. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.05.2016, 15:10
|
|||
---|---|---|---|
Запрос на получение разницы между текущим и следующим значением |
|||
#18+
Пардон, во WHERE должно быть ">=". ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.05.2016, 15:15
|
|||
---|---|---|---|
|
|||
Запрос на получение разницы между текущим и следующим значением |
|||
#18+
Akina, запрос Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
не выдаёт ни ошибок, ни данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.05.2016, 15:19
|
|||
---|---|---|---|
Запрос на получение разницы между текущим и следующим значением |
|||
#18+
Сева Новгородцев , за логику запроса я ещё могу отвечать, а вот за работу неизвестной мне функции - нет. Думаю, что она написана через задницу, и во втором подзапросе не начинает нумерацию заново, а продолжает её. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.05.2016, 15:24
|
|||
---|---|---|---|
|
|||
Запрос на получение разницы между текущим и следующим значением |
|||
#18+
Я не много не догоняю. скорее всего. Зачем нумерация, если изначально ТЗ звучит с такими полями как "ID, Время, Пользователь, Сообщение", где ID, я так понимаю, тот самый уникальный последовательный счетчик. Так почему его не использовать? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.05.2016, 15:35
|
|||
---|---|---|---|
Запрос на получение разницы между текущим и следующим значением |
|||
#18+
Agapov_stasЗачем нумерация, если изначально ТЗ звучит с такими полями как "ID, Время, Пользователь, Сообщение", где ID, я так понимаю, тот самый уникальный последовательный счетчик. Просто представь себе, что это реплика БД... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.05.2016, 15:36
|
|||
---|---|---|---|
|
|||
Запрос на получение разницы между текущим и следующим значением |
|||
#18+
Agapov_stasЯ не много не догоняю. скорее всего. Зачем нумерация, если изначально ТЗ звучит с такими полями как "ID, Время, Пользователь, Сообщение", где ID, я так понимаю, тот самый уникальный последовательный счетчик. Так почему его не использовать? Перестраховался на всякий случай. Вдруг какие-то записи будут удалены. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.05.2016, 15:36
|
|||
---|---|---|---|
|
|||
Запрос на получение разницы между текущим и следующим значением |
|||
#18+
Akina Сева Новгородцев , за логику запроса я ещё могу отвечать, а вот за работу неизвестной мне функции - нет. Думаю, что она написана через задницу, и во втором подзапросе не начинает нумерацию заново, а продолжает её. Вы были правы! Именно из-за этого. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.05.2016, 15:56
|
|||
---|---|---|---|
Запрос на получение разницы между текущим и следующим значением |
|||
#18+
Сева НовгородцевИменно из-за этого. В таком случае её надо переписывать. Даже перенос инициализации в подзапросы может не сработать - они могут выполняться и параллельно... разве что добавить дополнительный параметр и соответственно увеличить количество статических/глобальных переменных-счётчиков. Но лучше всё-таки обойтись запросом типа 19194045 . ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.05.2016, 19:34
|
|||
---|---|---|---|
|
|||
Запрос на получение разницы между текущим и следующим значением |
|||
#18+
Akina, согласен. Это правильный вариант. А я обошёлся костылём. Скопировал эту же функцию под другим именем. В первом случае вызываю исходную функцию, во втором - копию. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=45&mobile=1&tid=1613564]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
others: | 314ms |
total: | 465ms |
0 / 0 |