SELECT
    place_type,
    entries,
    place_id
FROM
    (
        (
            SELECT
                'metro' AS place_type,
                station_id AS place_id,
                COUNT(DISTINCT person_id) AS entries
            FROM transport.metro_usage_logs
            GROUP BY station_id
        )
        UNION
        (
            SELECT
                'shop' AS place_type,
                shop_id AS place_id,
                COUNT(DISTINCT person_id) AS entries
            FROM public.shop_entrance_logs
            GROUP BY shop_id
        )
    ) AS res
ORDER BY entries DESC, place_id ASC, place_type DESC
