Checks partisioned tables satatistics

select substr(table_name,1,20) partitioned_table,
    substr(column_name,1,20) key_column,
    count(*) no_stats,
    count(*)/total_partitions*100 "NO_STAT%"
from (
    select table_name,
        column_name,
        partition_name,
        low_value,
        count(*) over (partition by table_name, column_name)
        total_partitions
    from user_part_col_statistics
    where (table_name,column_name) in
        (select name,column_name
        from user_part_key_columns
        where object_type = 'TABLE')
    )
where low_value is null
    group by table_name,
    column_name,
    total_partitions