select substr(full_ts.tablespace_name || ' (' || full_ts.ts_pct || ')', 1, 37) tablespace_name, full_df.df_mb, full_df.df_used, full_df.df_pct, rtrim(substr(full_df.file_name,instr(full_df.file_name,'/',1,4) + 1,25)) file_name from (select df.tablespace_name, round(e.bytes/df.bytes, 4) * 100 ts_pct from (select tablespace_name, sum(bytes) bytes from dba_data_files group by tablespace_name) df, (select tablespace_name, sum(bytes) bytes from dba_extents group by tablespace_name) e where df.tablespace_name = e.tablespace_name and e.bytes/df.bytes > 0.9) full_ts, (select df.file_name, df.file_id, df.bytes / 1024 / 1024 df_mb, round(sum(e.bytes) / 1024 / 1024,0) df_used, round(sum(e.bytes) / df.bytes, 4) * 100 df_pct from (select tablespace_name, file_name, file_id, bytes from dba_data_files) df, (select file_id, sum(bytes) bytes from dba_extents group by file_id) e where df.file_id = e.file_id group by df.file_name, df.file_id, df.bytes) full_df, (select tablespace_name, file_id from dba_data_files) ts_df where full_ts.tablespace_name = ts_df.tablespace_name AND ts_df.file_id = full_df.file_id order by full_ts.tablespace_name, full_df.file_name