0

我正在尝试拉出一组中的前三名。我不确定如何在 Access 中做到这一点,我需要的是让每个组都拉到前三名。

http://allenbrowne.com/subquery-01.html

我已经尝试过这些子查询,但是它们给了我一条错误消息。有一个更好的方法吗?

它用于关键字性能。

表字段是

Keyword | Campaign | Ad Group |  Clicks | Impressions 

我想要每个广告组的前 3 名点击次数。我也想要前 3 次展示,但是一旦我知道如何进行点击,我就可以根据需要对其进行修改。我试着变得像

Ad Group 1 - First Top
Ad Group 1 - Second Top
Ad Group 1 - Third Top
Ad Group 2 - First Top
Ad Group 2 - Second Top
Ad Group 2 - Third Top
etc

SELECT KeywordReport.ID, KeywordReport.Campaign, KeywordReport.[Ad group], KeywordReport.Keyword, KeywordReport.Clicks, KeywordReport.Impressions, KeywordReport.[Avg CPC], KeywordReport.[Search Impr share], KeywordReport.Cost
FROM KeywordReport
WHERE (((KeywordReport.ID) In (SELECT TOP 3 ID 
FROM KeywordReport AS Dupe
WHERE Dupe.ID = KeywordReport.ID
ORDER BY Dupe.Clicks DESC)))
ORDER BY KeywordReport.[Ad group];

它返回所有条目而不是前 3 个条目。

4

1 回答 1

0

我认为你很接近:

WHERE (((KeywordReport.ID) In (SELECT TOP 3 ID 
FROM KeywordReport AS Dupe
WHERE Dupe.[Ad Group] = KeywordReport.[Ad Group]   <-- change this line
ORDER BY Dupe.Clicks DESC)))
于 2013-10-14T18:54:10.697 回答