Changes between Version 16 and Version 17 of AdvancedReports


Ignore:
Timestamp:
09/25/25 01:07:15 (3 weeks ago)
Author:
223270
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AdvancedReports

    v16 v17  
    333333}}}
    334334
    335 === Годишен извештај за нови корисници и резервации по месец
    336 Агрегира број на нови корисници и број на резервации месечно за целата година. Дава целосен увид во растот на платформата.
    337 {{{
    338 CREATE OR REPLACE FUNCTION GetMonthlyUserReservationReport(year INT)
    339 RETURNS TABLE(
    340     Month INT,
    341     NewUsers bigint,
    342     TotalReservations bigint
    343 )
    344 LANGUAGE plpgsql
    345 AS $$
    346 BEGIN
    347     RETURN QUERY
    348     SELECT
    349         m.Month,
    350         COUNT(DISTINCT u.id_user) AS NewUsers,
    351         COALESCE(SUM(r.ReservationCount),0) AS TotalReservations
    352     FROM (
    353         SELECT EXTRACT(MONTH FROM birth_date)::INT AS Month, id_user
    354         FROM travel_sage.users
    355         WHERE EXTRACT(YEAR FROM birth_date) = year
    356     ) u
    357     LEFT JOIN (
    358         SELECT EXTRACT(MONTH FROM time_point)::INT AS Month, id_reservation,
    359                id_user, COUNT(*) AS ReservationCount
    360         FROM travel_sage.reservation
    361         WHERE EXTRACT(YEAR FROM time_point) = year
    362         GROUP BY Month, id_reservation, id_user
    363     ) r ON u.id_user = r.id_user AND u.Month = r.Month
    364     RIGHT JOIN (SELECT generate_series(1,12) AS Month) m ON m.Month = u.Month OR m.Month = r.Month
    365     GROUP BY m.Month
    366     ORDER BY m.Month;
    367 END;
    368 $$;
    369 }}}
    370335
    371336=== Дестинации со најголем број на разновидни настани