- Add StatCan CMHC parser to fetch rental data from Statistics Canada API - Create year spine (2014-2025) as time dimension driver instead of census - Add CMA-level rental and income intermediate models - Update mart_neighbourhood_overview to use rental years as base - Fix neighbourhood_service queries to match dbt schema - Add CMHC data loading to pipeline script Data now flows correctly: 158 neighbourhoods × 12 years = 1,896 records Rent data available 2019-2025, crime data 2014-2024 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
46 lines
1.3 KiB
SQL
46 lines
1.3 KiB
SQL
-- Intermediate: Combined census demographics by neighbourhood
|
|
-- Joins neighbourhoods with census data for demographic analysis
|
|
-- Grain: One row per neighbourhood per census year
|
|
|
|
with neighbourhoods as (
|
|
select * from {{ ref('stg_toronto__neighbourhoods') }}
|
|
),
|
|
|
|
census as (
|
|
select * from {{ ref('stg_toronto__census') }}
|
|
),
|
|
|
|
demographics as (
|
|
select
|
|
n.neighbourhood_id,
|
|
n.neighbourhood_name,
|
|
n.geometry,
|
|
n.land_area_sqkm,
|
|
|
|
-- Use census_year from census data, or fall back to dim_neighbourhood's year
|
|
coalesce(c.census_year, n.census_year, 2021) as census_year,
|
|
c.population,
|
|
c.population_density,
|
|
c.median_household_income,
|
|
c.average_household_income,
|
|
c.median_age,
|
|
c.unemployment_rate,
|
|
c.pct_bachelors_or_higher as education_bachelors_pct,
|
|
c.average_dwelling_value,
|
|
|
|
-- Tenure mix
|
|
c.pct_owner_occupied,
|
|
c.pct_renter_occupied,
|
|
|
|
-- Income quintile (city-wide comparison)
|
|
ntile(5) over (
|
|
partition by c.census_year
|
|
order by c.median_household_income
|
|
) as income_quintile
|
|
|
|
from neighbourhoods n
|
|
left join census c on n.neighbourhood_id = c.neighbourhood_id
|
|
)
|
|
|
|
select * from demographics
|