| | 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 | }}} |