| 117 | |
| 118 | === 5. Извештај за цени за изнајмување на недвижности (просечна, минимална, максимална и цена по метар квадратен) согласно категорија на објект, град, број на соби, големина на објект. |
| 119 | {{{ |
| 120 | |
| 121 | SELECT |
| 122 | pt.name AS property_type, |
| 123 | a.city, |
| 124 | u.bedrooms, |
| 125 | CASE |
| 126 | WHEN u.area_sq_m < 50 THEN 'Мала (<50м²)' |
| 127 | WHEN u.area_sq_m < 80 THEN 'Средна (50-80м²)' |
| 128 | ELSE 'Голема (>80м²)' |
| 129 | END AS size_category, |
| 130 | COUNT(l.id) AS lease_count, |
| 131 | ROUND(AVG(l.rent_amount), 2) AS avg_rent, |
| 132 | ROUND(MIN(l.rent_amount), 2) AS min_rent, |
| 133 | ROUND(MAX(l.rent_amount), 2) AS max_rent, |
| 134 | ROUND(AVG(l.rent_amount / u.area_sq_m), 2) AS price_per_sqm |
| 135 | FROM Lease l |
| 136 | JOIN Listing li ON l.listing_id = li.id |
| 137 | JOIN Unit u ON li.unit_id = u.id |
| 138 | JOIN Property p ON u.property_id = p.id |
| 139 | JOIN PropertyType pt ON p.property_type_id = pt.id |
| 140 | JOIN Address a ON p.address_id = a.id |
| 141 | WHERE l.start_date >= CURRENT_DATE - INTERVAL '12 months' |
| 142 | GROUP BY pt.name, a.city, u.bedrooms, size_category |
| 143 | HAVING COUNT(l.id) >= 1 |
| 144 | ORDER BY a.city, pt.name, u.bedrooms; |
| 145 | }}} |
| 146 | |
| 147 | === 6. Извештај за последната година за тоа колку просечно денови во секој месец огласите биле изложени пред да биде склучен договор за нив. |
| 148 | {{{ |
| 149 | SELECT |
| 150 | EXTRACT(YEAR FROM li.available_from) AS year, |
| 151 | EXTRACT(MONTH FROM li.available_from) AS month, |
| 152 | COUNT(*) AS total_listings, |
| 153 | AVG(l.start_date - li.available_from) AS avg_days_on_market |
| 154 | FROM Listing li |
| 155 | JOIN Lease l ON li.id = l.listing_id |
| 156 | WHERE li.available_from >= CURRENT_DATE - INTERVAL '365 days' |
| 157 | GROUP BY year, month |
| 158 | ORDER BY year, month; |
| 159 | }}} |