Дана таблица 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

  • Нет меток