def METHOD_NAME(table: Table, table_population: Table) -> Table:
    column_idx = ["country", "year"]
    # Estimate regions number of internet users
    regions = [
        "Europe",
        "Asia",
        "North America",
        "South America",
        "Africa",
        "Oceania",
        "High-income countries",
        "Low-income countries",
        "Lower-middle-income countries",
        "Upper-middle-income countries",
    ]
    regions_must_have = {
        "Oceania": ["Australia"],
    }
    for region in regions:
        table = geo.add_region_aggregates(
            df=table,
            region=region,
            aggregations={"num_internet_users": sum},
            countries_that_must_have_data=regions_must_have.get(region, []),
            num_allowed_nans_per_year=None,
            frac_allowed_nans_per_year=0.99,
        )
    # Get population for regions
    table = table.merge(table_population.reset_index(), on=column_idx, how="left")
    # Estimate relative values
    msk = table.country.isin(regions)
    table.loc[msk, "share_internet_users"] = (
        table.loc[msk, "num_internet_users"] / table.loc[msk, "population"] * 100
    ).round(2)
    # Filter columns
    table = table.set_index(column_idx)[["num_internet_users", "share_internet_users"]]
    return table