-- 107_backfill_price_per_m2.sql -- Backfill price_per_m2 = ROUND(price_rub / total_area, 2) for rows where -- price_rub is known but price_per_m2 was not stored by the scraper. -- -- Context (SF FixList #16): -- domrf_kn.py _norm_flat() now derives price_per_m2 on ingest. -- This one-time UPDATE covers historical rows scraped before the fix. -- For Малевич (obj_id=64701) and the wider dataset, both price_rub AND -- price_per_m2 are NULL (DOM.RF /portal/table API does not return per-flat -- pricing for most objects). Those rows are unaffected by this UPDATE. -- Only rows where price_rub IS NOT NULL benefit — currently ~849 rows. -- -- Safe to re-run: idempotent (WHERE price_per_m2 IS NULL). BEGIN; UPDATE domrf_kn_flats SET price_per_m2 = ROUND((price_rub / total_area)::numeric, 2) WHERE price_per_m2 IS NULL AND price_rub IS NOT NULL AND total_area IS NOT NULL AND total_area > 0; COMMIT;