имеет таблицу местоположений, содержащую 3 типа записей (см. Ниже). Мне нужно только выбрать строки SELECT record_type = 'G'.
Я хочу обернуть данные в al oop (ie 5 раз), но как я могу случайным образом перетасовать ВСЕ строки по location_id, поэтому они появляются в разном порядке с каждой итерацией l oop? Может быть, вставить строки в массив и перетасовать массив?
Обратите внимание, я не хочу перемешивать столбцы, я хочу, чтобы строка оставалась неизменной. В будущем могут быть добавлены другие местоположения.
CREATE TABLE locations AS
SELECT level AS location_id,
'Door ' || level AS location_name,
CASE round(dbms_random.value(1,3))
WHEN 1 THEN 'A'
WHEN 2 THEN 'T'
WHEN 3 THEN 'G'
END AS location_type
FROM dual
CONNECT BY level <= 25;
SELECT * from tour_detail
Order by tour_id, tour_time
TOUR_ID TOUR_TIME LOCATION_ID
1 06212020 00:10:25 2
1 06212020 00:21:05 18
1 06212020 00:30:33 11
1 06212020 00:40:51 17
1 06212020 00:52:13 4
1 06212020 01:01:42 2
1 06212020 01:07:52 11
У нас есть система контроля доступа, когда вы сдвигаете карту, она записывает card_num, location_id, access_date в формате MMDDYYY HH24: MI: SS.
Некоторые хотели создать систему охранных туров. Это сравнивает access_date с подробной датой tour_detail. Если в рамках определенных критериев говорят + или - 2 минуты, это означает, что охрана была вовремя, если GT или LT 2 минуты, мы регистрируем раньше или позже, если GT или LT 5 минут или нет записи access_history, мы регистрируем неявку.
Меня попросили собрать некоторые данные тестирования. Как видите, записи tour_detail содержат MMDDYYYY HH24: MI: SS, поэтому я подумываю об изменении записей tour_detail на интервал от часа к минуте, но у меня мало опыта работы с этим.