Changes between Version 18 and Version 19 of AdvancedApplicationDevelopment


Ignore:
Timestamp:
09/30/25 09:13:16 (2 weeks ago)
Author:
223270
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AdvancedApplicationDevelopment

    v18 v19  
    269269}}}
    270270
     2714. Композитна метрика за дестинација: просечна оцена, процент на ефтини активности, број на резервации. Се користи за рангирање на дестинации.
     272{{{
     273CREATE OR REPLACE FUNCTION destination_score(p_dest INT)
     274RETURNS FLOAT LANGUAGE plpgsql AS $$
     275DECLARE
     276    avg_rating FLOAT;
     277    cheap_percent FLOAT;
     278    total_reservations INT;
     279    score FLOAT;
     280BEGIN
     281    SELECT AVG(quality) INTO avg_rating FROM review WHERE id_destination = p_dest;
     282    SELECT COUNT(*) * 100.0 / NULLIF((SELECT COUNT(*) FROM activity WHERE id_destination = p_dest),0)
     283        INTO cheap_percent FROM activity WHERE id_destination = p_dest AND amount < 500;
     284    SELECT COUNT(*) INTO total_reservations FROM reservation WHERE id_destination = p_dest;
     285
     286    score := COALESCE(avg_rating,0)*0.5 + COALESCE(cheap_percent,0)*0.3 + COALESCE(total_reservations,0)*0.2;
     287    RETURN score;
     288END;
     289$$;
     290}}}
     291
     292
    271293=== Релациска алгебра
    272294Најпопуларни дестинации по просечна оцена и број на резервации