Hope this is what you want, a dimension with Geography details.
DIM_GEOGRAPHY
{
PK,
CITY_ID,
CITY_NAME,
DISTRICT_ID,
DISTRICT_NAME,
REGION_ID,
REGION_NAME
}
FACT_TABLE
{
PRIMARY_KEY,
CITY_ID;
COST;
}
Also you can query the same structure like this,
SELECT
DIM.DISTRICT_NAME AS 'District_Name',
SUM(F.COST) AS 'Total_Cost'
FROM
FACT F
INNER JOIN DIM_GEOGRAPHY DIM
ON F.CITY_ID = DIM.CITY_ID
GROUP BY DIM.DISTRICT_NAME
-- WHERE DIM.REGION_NAME = 'XYZ'
Here you will get District wise Cost total for particular region, specified with where clause.