title: Return Top N rows for each group (Vertica/vsql)
body: <p>Familiar question, but with Vertica. I'd like to return the top 5 geo_country rows based on sum(imps) for each tag_id. This is the query I started:</p>
  
  <pre><code>SELECT tag_id,
         geo_country,
         SUM(imps) AS imps,
         RANK() OVER (PARTITION BY tag_id ORDER BY SUM(imps) DESC) AS rank
  FROM table1
  WHERE tag_id IN (2013150,1981153)
  AND ymd &gt; CURRENT_DATE - 3
  GROUP BY 1,
           2 LIMIT 10;
  </code></pre>
  
  <p>This actually returns only rows from the first tag in the WHERE clause (2013150). I know that the other tag has sum(imps) values high enough which should include it in the results.</p>
  
  <p>Also, how do I implement the Top N part? I tried adding a LIMIT clause within the OVER function, but it doesn't look like it is an accepted parameter.</p>