6

おなじみの質問ですが、Vertica についてです。各 tag_id の sum(imps) に基づいて、上位 5 つの geo_country 行を返したいと思います。これは私が始めたクエリです:

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 > CURRENT_DATE - 3
GROUP BY 1,
         2 LIMIT 10;

これは、実際には WHERE 句 (2013150) の最初のタグからの行のみを返します。他のタグの sum(imps) 値が十分に高く、結果に含める必要があることはわかっています。

また、トップ N 部分を実装するにはどうすればよいですか? OVER 関数内に LIMIT 句を追加しようとしましたが、受け入れられたパラメーターのようには見えません。

4

2 に答える 2