У меня есть таблица, которая отслеживает расписание транспортных средств и вылетов.Peak schedule load
Table: Schedule
route location v_type out in
===================================================================
a loc1 10 2/14/2013 08:04:00 2/14/2013 10:03:00
b loc1 11 2/14/2013 08:06:00 2/14/2013 14:20:00
c loc2 11 2/14/2013 06:22:00 2/14/2013 07:50:00
d loc1 10 2/14/2013 11:04:00 2/14/2013 10:03:00
e loc2 10 2/14/2013 08:06:00 2/14/2013 14:20:00
f loc2 11 2/14/2013 06:22:00 2/14/2013 07:50:00
Представьте, что это тысячи маршрутов в день. Я пытаюсь выяснить для каждого места, и v_type, какое время (или окно времени), что большинство автомобилей будет в дороге.
Желаемые результаты, т.
location v_type time peak
===========================================
loc1 10 2/14/2013 10:40 110
loc1 11 2/14/2013 10:30 80
loc2 10 2/14/2013 08:05 67
loc2 11 2/14/2013 09:45 107
т.д.
Основная идея вы можете найти количество транспортных средств на дороге в любой момент времени, находя общее количество транспортных средств, которые ушли, и вычитая число транспортных средств, вернулись на текущий день.
Это то, что у меня есть до сих пор, но оно работает неправильно и работает медленно.
SELECT s.location,
s.v_type,
TO_CHAR(TRUNC(s.out, 'mi') - mod(EXTRACT(minute FROM CAST(s.out AS TIMESTAMP)), 10)/(24 * 60), 'YYYY-MM-DD HH24:MI') AS TIME,
(SELECT
(SELECT COUNT(*)
FROM SCHEDULE s2
WHERE s2.out BETWEEN TRUNC(s.out) AND (TRUNC(s.out, 'mi') - mod(EXTRACT(minute FROM CAST(s.out AS TIMESTAMP)), 10)/(24 * 60))
)
-
(SELECT COUNT(*)
FROM SCHEDULE s2
WHERE s2.out BETWEEN TRUNC(s.in) AND (TRUNC(s.in, 'mi') - mod(EXTRACT(minute FROM CAST(s.in AS TIMESTAMP)), 10)/(24 * 60))
)
FROM dual
)
FROM SCHEDULE s
GROUP BY s.location, s.v_type,
(TRUNC(s.out, 'mi') - mod(EXTRACT(minute FROM CAST(s.out AS TIMESTAMP)), 10)/(24 * 60))
Было бы намного проще помочь вам, если вы разместите образцы таблиц и данных, и я имею в виду сценарии создания/вставки. Я не могу хрустнуть такие вещи в моем сознании. для меня ... – Art
Я googling, но есть ли простой способ сделать это от SQLDeveloper? – Plecebo
@ Plecebo-то, что я имел в виду, в дополнение к вашим примерам, вы всегда должны строить структуры с данными, как в ваших примерах, например. создать таблицу ... вставить в ... Это поможет проверить запросы и помочь вам лучше и быстрее. У меня нет времени создавать, заполнять структуры для кого-то, извините. Я не знаю, почему люди предполагают, что легко решить такие проблемы умственно, или кто-то должен создавать таблицы и данные для них ... – Art