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