You can use statistics to get a reasonable guess, eg
SQL> create table t as
2 select d.* from dba_objects d,
3 ( select 1 from dual connect by level <= 20 );
Table created.
SQL>
SQL> select num_rows, avg_row_len, blocks, empty_blocks
2 from user_tables
3 where table_name = 'T';
NUM_ROWS AVG_ROW_LEN BLOCKS
---------- ----------- ----------
1663380 132 32241
So you can see this table has 32241 blocks of space. Lets use the size of the *data* to make an estimate to see how close we get
SQL> select num_rows*avg_row_len/8192*100/(100-pct_free) est_blocks
2 from user_tables
3 where table_name = 'T';
EST_BLOCKS
----------
29780.5664
We come up a bit short, but we can use the ratio to make an assumption that that there's around an 8% overhead for block, thus:
SQL> select num_rows*avg_row_len/8192*100/(100-pct_free)*1.08 est_blocks
2 from user_tables
3 where table_name = 'T';
EST_BLOCKS
----------
32163.0117
so now we're pretty close. Obviously we're putting aside things like compression, how much of pctfree is consumed over time etc, but we're in the ballpark.
Now lets delete 1/3 of the rows.
SQL> delete from t
2 where mod(object_id,3) = 0;
554620 rows deleted.
At this point - we want to make a guess as to how much space we would reclaim. So we'll gather stats
SQL> exec dbms_stats.gather_table_stats('','T')
PL/SQL procedure successfully completed.
SQL>
SQL> select num_rows*avg_row_len/8192*100/(100-pct_free)*1.08 est_blocks
2 from user_tables
3 where table_name = 'T';
EST_BLOCKS
----------
21438.9141
So our estimate is that after a reorg is that the table will be around 21438 blocks. Now we can see how close that was:
SQL> alter table t move;
Table altered.
SQL>
SQL> exec dbms_stats.gather_table_stats('','T')
PL/SQL procedure successfully completed.
SQL>
SQL> select num_rows, avg_row_len, blocks
2 from user_tables
3 where table_name = 'T';
NUM_ROWS AVG_ROW_LEN BLOCKS
---------- ----------- ----------
1108760 132 21532 0
Not too bad.
You don't have to be super accurate here, because you'd probably only consider a space reclaim is the potential benefits were massive anyway.