【发布时间】:2015-11-04 23:41:32
【问题描述】:
这是我的有效查询:
选择 a_name、w_name、page_url、SUM(IF(result = 'WIN', 1, 0)) 作为展示次数,
来自 TABLE_DATE_RANGE(v3_data.v3_,TIMESTAMP('2015-08-05'),TIMESTAMP('2015-08-07'))
WHERE server ="server1" 和 w_id IN (1096, 1105, 1136,1153,1189,1209)
按 1、2、3 分组
ORDER BY Impressions DESC
限制 1000000
现在我的问题是我不想使用限制。
我想做的是从每个 w_id 中选择前 1000 个结果,按展示次数排序。
有多个 w_id,这个查询也将扩展到多个服务器。
本来我以为我试试:
从 [上面的代码] 中选择前 1000 个 * 按 1,2,3 分组
但是 top 在大查询中不会像那样工作,如果我这样做了,它不会为每个 w_id 选择前 1000 个它会在整个集合中执行它,所以如果它们都是 w_id 1209,我将无法获得任何结果相对较小。
我希望这是足够的信息,我在这里因为含糊不清而得到了很多支持,但我试图提供尽可能多的细节并尽可能合乎逻辑。 提前致谢
【问题讨论】:
标签: sql google-bigquery sql-order-by