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