Дана таблица FILE_SYSTEM в схеме OLTP_TEST заполненная данными из файловой системы.
create table FILE_SYSTEM( ID INTEGER, -- Идентификатор файла или папки NAME VARCHAR2(1000), -- имя файла/папки PARENT_ID INTEGER, -- Ссылка на родительскую папку TYPE VARCHAR2(100), -- тип 'DIR' или 'FILE' FILE_SIZE INTEGER -- собственный размер файла ); alter table FILE_SYSTEM add primary key(ID); alter table FILE_SYSTEM add foreign key(PARENT_ID) references FILE_SYSTEM(ID);
Задача:
Шаг 1. Вывести все директории в виде:
ID, Название, Путь до корня
Шаг 2. Для каждой директории посчитать объем занимаемого места на диске (с учетом всех вложенных папок)
ID, Название, Путь до корня, total_size
Шаг 3. Добавить в запрос: сколько процентов директория занимает места относительно всех среди своих соседей (siblings)
ID, Название, Путь до корня, total_size, ratio
Проверочное значение (на осень 2019 года):
Папка Dep806: 102 GB (110,288,390,025 bytes)
9,589 Files, 4,575 Folders