Junior
Analýza návštevnosti fitness klubov Pracujete ako analytik v sieti fitness klubov. Máte informácie o návštevách používateľov a o predplatných, ktoré kupujú. Je potrebné analyzovať efektívnosť využívania predplatných. Vypočítajte pre každý typ predplatného: • celkový počet používateľov, ktorí tento typ predplatného použili. Zvážte iba jedinečné user_id; • celkový počet návštev pre toto predplatné. Zvážte všetky návštevy používateľov s týmto predplatným; • podiel používateľov tohto predplatného v percentách z celkového počtu používateľov (zaokrúhlené na jedno desatinné miesto). Na výpočet použite pomer medzi počtom používateľov s týmto predplatným a celkovým počtom jedinečných používateľov. Každý používateľ môže mať iba jedno predplatné. Výsledok zoradte podľa typu predplatného abecedne.
sobes.tech AI
Odpoveď od AI
sql WITH user_counts AS ( SELECT membership_type, COUNT(DISTINCT user_id) AS users_count FROM memberships GROUP BY membership_type ),
total_users AS ( SELECT COUNT(DISTINCT user_id) AS total FROM memberships ),
visits_count AS ( SELECT m.membership_type, COUNT(v.visit_id) AS total_visits FROM visits v JOIN memberships m ON v.user_id = m.user_id GROUP BY m.membership_type )
SELECT uc.membership_type, uc.users_count, COALESCE(vc.total_visits, 0) AS total_visits, ROUND((uc.users_count::numeric / t.total) * 100, 1) AS user_share FROM user_counts uc JOIN total_users t ON true LEFT JOIN visits_count vc ON uc.membership_type = vc.membership_type ORDER BY uc.membership_type;