For instance, to get the stores with the highest post-count per country:
SELECT DISTINCT ON (s.country)
       s.country, s.store_id, s.name, sp.post_ct
FROM   store          s
JOIN  (
    SELECT store_id, count(*) AS post_ct
    FROM   store_post_map
    GROUP  BY store_id
    ) sp ON sp.store_id = s.id
ORDER  BY s.country, sp.post_ct DESC
Add any number of columns from store to the SELECT list.
Details about this query style in this related answer:
Reply to comment
This produces the count per country and picks (one of) the store(s) with the highest post-count:
SELECT DISTINCT ON (s.country)
       s.country, s.store_id, s.name
      ,sum(post_ct) OVER (PARTITION BY s.country) AS post_ct_for_country
FROM   store          s
JOIN  (
    SELECT store_id, count(*) AS post_ct
    FROM   store_post_map
    GROUP  BY store_id
    ) sp ON sp.store_id = s.id
ORDER  BY s.country, sp.post_ct DESC;
This works because the window function sum() is applied before DISTINCT ON per definition.