feat(analytics): add cad_quarter_count to districts endpoint

This commit is contained in:
lekss361 2026-05-11 17:29:40 +03:00
parent ae86d62e9b
commit b18f44e1ad

View file

@ -208,11 +208,19 @@ def districts(db: Session) -> list[dict[str, Any]]:
db.execute(
text(
"""
SELECT district_name, zk_count, flat_count, area_m2,
median_price_per_m2, mean_price_per_m2
FROM ekb_districts
WHERE district_name <> 'не определён'
ORDER BY zk_count DESC NULLS LAST
SELECT d.district_name, d.zk_count, d.flat_count, d.area_m2,
d.median_price_per_m2, d.mean_price_per_m2,
COALESCE(cq.cad_quarter_count, 0) AS cad_quarter_count
FROM ekb_districts d
LEFT JOIN (
SELECT district_name,
COUNT(*) FILTER (WHERE cad_quarter IS NOT NULL) AS cad_quarter_count
FROM v_complex_full
WHERE district_name IS NOT NULL
GROUP BY district_name
) cq ON cq.district_name = d.district_name
WHERE d.district_name <> 'не определён'
ORDER BY d.zk_count DESC NULLS LAST
"""
)
)
@ -227,6 +235,7 @@ def districts(db: Session) -> list[dict[str, Any]]:
"area_m2": _f(r["area_m2"]),
"median_price_per_m2": _f(r["median_price_per_m2"]),
"mean_price_per_m2": _f(r["mean_price_per_m2"]),
"cad_quarter_count": int(r["cad_quarter_count"]),
}
for r in rows
]