|
Помощь в написании запроса
|
|||
---|---|---|---|
#18+
Добрый вечер. Помогите, пожалуйста, написать запрос. Есть заказы грузового такси. Есть столбец в формате datetime с временем начала заказа и 2 столбец с временем окончания заказа в формате datetime. Также есть отдельный столбец с id_order - уникальный идентификатор заказа. Задача: Нужно написать запрос который выведет среднее время которое проходит между заказами ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2020, 01:32 |
|
Помощь в написании запроса
|
|||
---|---|---|---|
#18+
Студентам, желающим помощи . Пример, как надо показать, что вы что-то сделали сами: Код: plsql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2020, 07:14 |
|
Помощь в написании запроса
|
|||
---|---|---|---|
#18+
Dmitry1521, что не получается? Код: 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.
..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2020, 09:05 |
|
Помощь в написании запроса
|
|||
---|---|---|---|
#18+
Stax, Благодарю Вас, не получается потому что нет познаний в оконных функций, в частности, в прикладном их применении. Не могли, пожалуйста, описать Ваших логику расчетов, эту строчку: lead(db) over (partition by id_taxi order by db)-de d ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2020, 22:03 |
|
Помощь в написании запроса
|
|||
---|---|---|---|
#18+
Stax, возвращает только пустые значения ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2020, 22:26 |
|
Помощь в написании запроса
|
|||
---|---|---|---|
#18+
Советы: 1. У нас нет ваших таблиц, поэтому предпочтительно приводить тестовые данные в виде with. 2. Если непонятна документация (хотя надо стараться начинать с нее и разбираться в ней), ищите не "oracle analytic functions", а "oracle analytic functions examples". И не торопитесь писать на форум, попробуйте разобраться в этих примерах сами. Ответ: Over - это окно, по которому работают обычные групповые функции. В данном случае оно статическое (в отличие от PRECEDING/FOLLOWING), и выдает то, что выдаст та же функция, если ее запустить по сгруппированному запросу. Хотя и с нюансами. Добавил для вас два столбца с примитивной функцией max, чтобы помочь. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2020, 13:55 |
|
Помощь в написании запроса
|
|||
---|---|---|---|
#18+
Dmitry1521 Stax, Не могли, пожалуйста, описать Ваших логику расчетов, эту строчку: lead(db) over (partition by id_taxi order by db)-de d время между заказами в моем понимании, это интервал между окончанием текущего и началом следующего заказов для такси1 23/04/2020 18:00 по 23/04/2020 19:00 - 1 час 23/04/2020 20:00 по 24/04/2020 08:00 - 12 часов среднее (1+12)/2=6.5 часов аналогично для такси2 lead(db) over (partition by id_taxi order by db) - получить время начала следующего заказа -de -отнять врема окончания текущего заказа -получим время простоя зы в жизни часто посложнее, напр учитывать длительность смены что делать с последним заказом и тд .... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2020, 12:05 |
|
|
start [/forum/topic.php?fid=52&msg=39950814&tid=1881293]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
153ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 247ms |
0 / 0 |