SELECT 
    p.pseudonym_nzis AS id,
    CASE 
        WHEN EXTRACT(YEAR FROM p.den) - p.rok_narozeni < 5 THEN '<5'
        WHEN EXTRACT(YEAR FROM p.den) - p.rok_narozeni BETWEEN 5 AND 11 THEN '5-11'
        WHEN EXTRACT(YEAR FROM p.den) - p.rok_narozeni BETWEEN 12 AND 17 THEN '12-17'
        ELSE '18+'
    END AS vekova_kategorie,
    p.kod_polozky,
    TO_CHAR(p.den, 'YYYY-MM') AS mesic_vyzvednuti,
    p.icp_okres AS okres,
    SUM(p.mnozstvi) AS celkove_mnozstvi
FROM x_nrhzs_data.v_polozka_01_hvlp p
WHERE 
    p.cis_atc_kod_posledni LIKE 'V01%'
    AND p.den BETWEEN DATE '2015-01-01' AND CURRENT_DATE
GROUP BY 
    p.pseudonym_nzis,
    CASE 
        WHEN EXTRACT(YEAR FROM p.den) - p.rok_narozeni < 5 THEN '<5'
        WHEN EXTRACT(YEAR FROM p.den) - p.rok_narozeni BETWEEN 5 AND 11 THEN '5-11'
        WHEN EXTRACT(YEAR FROM p.den) - p.rok_narozeni BETWEEN 12 AND 17 THEN '12-17'
        ELSE '18+'
    END,
    p.kod_polozky,
    TO_CHAR(p.den, 'YYYY-MM'),
    p.icp_okres;
