fix(recommend): cad_buildings.floors is INTEGER not TEXT (HOTFIX) #218
1 changed files with 3 additions and 4 deletions
|
|
@ -1349,10 +1349,9 @@ def _district_cadastre_baseline(db: Session, *, district_name: str) -> dict[str,
|
||||||
WHERE cb.cost_value IS NOT NULL
|
WHERE cb.cost_value IS NOT NULL
|
||||||
AND cb.area IS NOT NULL
|
AND cb.area IS NOT NULL
|
||||||
AND cb.area >= 100
|
AND cb.area >= 100
|
||||||
-- floors хранится как TEXT (встречаются '1-2', '2-3') —
|
-- floors INTEGER (Rosreestr ETL приводит к int); NULL = unknown.
|
||||||
-- считаем только чистые числа ≥3, либо purpose-fallback.
|
-- Считаем МКД если floors ≥3 или purpose содержит «многокв».
|
||||||
AND ((cb.floors ~ '^[0-9]+$' AND cb.floors::int >= 3)
|
AND (cb.floors >= 3 OR cb.purpose ILIKE '%многокв%')
|
||||||
OR cb.purpose ILIKE '%многокв%')
|
|
||||||
AND (cb.cost_value / NULLIF(cb.area, 0))
|
AND (cb.cost_value / NULLIF(cb.area, 0))
|
||||||
BETWEEN 5000 AND 500000
|
BETWEEN 5000 AND 500000
|
||||||
)
|
)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue