我正在尝试编写一个查询,它将返回与给定关键字对应的url相关联的最大搜索量。示例数据集如下所示:到目前为止,我掌握的语法是:理想情况下,查询将返回搜索量最大的关键字及其url对。我不确定我是否需要使用解析函数,或者我是否可以创建一个自连接?我试过各种方法,但到目前为止运气不好。任何帮助都将不胜感激。
kadbb4591#
理想情况下,查询将返回搜索量最大的关键字及其url对。看起来你只是想 order by 以及 limit :
order by
limit
select t.* from mytable t order by search_vol desc limit 1
这会给你带来最大的麻烦 search_vol 在整张table里。另一方面,如果您希望每个url搜索最多的关键字,那么这是一个最大的问题。以下是一个符合您最初尝试精神的解决方案,使用解析函数:
search_vol
select t.* except (rn) from ( select t.*, rank() over(partition by url order by search_vol desc) rn from mytable t ) t where rn = 1 ``` `rank()` 允许顶部系带(如果有)。如果你想避免这种情况,使用 `row_number()` .
huus2vyu2#
下面是bigquery标准sql
# standardSQL SELECT AS VALUE ARRAY_AGG(t ORDER BY search_vol DESC LIMIT 1)[OFFSET(0)] FROM `project.dataset.table` t GROUP BY url
2条答案
按热度按时间kadbb4591#
理想情况下,查询将返回搜索量最大的关键字及其url对。
看起来你只是想
order by
以及limit
:这会给你带来最大的麻烦
search_vol
在整张table里。另一方面,如果您希望每个url搜索最多的关键字,那么这是一个最大的问题。以下是一个符合您最初尝试精神的解决方案,使用解析函数:
huus2vyu2#
下面是bigquery标准sql