wiki:AdvancedReport24

Version 2 (modified by 211101, 4 days ago) ( diff )

--

Неактивни тагови

Идентификување тагови кои не биле користени во изминатиот месец

CREATE OR REPLACE FUNCTION get_inactive_tags_last_month()
RETURNS TABLE (
    tag_name TEXT
)
LANGUAGE plpgsql
AS $$
BEGIN
    RETURN QUERY
    SELECT 
        tg.tag_name
    FROM tag tg
    LEFT JOIN tag_assigned_to_transaction tat 
        ON tg.tag_id = tat.tag_id
    LEFT JOIN transaction t 
        ON tat.transaction_id = t.transaction_id
    WHERE t.date IS NULL OR t.date < NOW() - INTERVAL '1 MONTH';
END;
$$;

Релациона алгебра

  • TG(tag_id, tag_name)
  • TAT(tag_id, transaction_id)
  • T(transaction_id, date)

LEFT JOIN на табелите:

  • J1 ← TG ⟕TG.tag_id = TAT.tag_id TAT
  • J2 ← J1 ⟕TAT.transaction_id = T.transaction_id T

Филтрирање на неактивни тагови:

  • R_final ← σdate IS NULL ∨ date < NOW() - INTERVAL '1 MONTH'(J2)
Note: See TracWiki for help on using the wiki.