Changes between Version 2 and Version 3 of AdvancedReports


Ignore:
Timestamp:
06/27/25 00:51:21 (10 days ago)
Author:
221012
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AdvancedReports

    v2 v3  
    115115
    116116}}}
     117
     118=== 5. Извештај за цени за изнајмување на недвижности (просечна, минимална, максимална и цена по метар квадратен) согласно категорија на објект, град, број на соби, големина на објект.
     119{{{
     120
     121SELECT
     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
     135FROM Lease l
     136JOIN Listing li ON l.listing_id = li.id
     137JOIN Unit u ON li.unit_id = u.id
     138JOIN Property p ON u.property_id = p.id
     139JOIN PropertyType pt ON p.property_type_id = pt.id
     140JOIN Address a ON p.address_id = a.id
     141WHERE l.start_date >= CURRENT_DATE - INTERVAL '12 months'
     142GROUP BY pt.name, a.city, u.bedrooms, size_category
     143HAVING COUNT(l.id) >= 1
     144ORDER BY a.city, pt.name, u.bedrooms;
     145}}}
     146
     147=== 6. Извештај за последната година за тоа колку просечно денови во секој месец огласите биле изложени пред да биде склучен договор за нив.
     148{{{
     149SELECT
     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
     154FROM Listing li
     155JOIN Lease l ON li.id = l.listing_id
     156WHERE li.available_from >= CURRENT_DATE - INTERVAL '365 days'
     157GROUP BY year, month
     158ORDER BY year, month;
     159}}}