google bigquery分析函数-max(函数)

flvlnr44  于 2021-07-26  发布在  Java
关注(0)|答案(2)|浏览(406)

我正在尝试编写一个查询,它将返回与给定关键字对应的url相关联的最大搜索量。
示例数据集如下所示:

到目前为止,我掌握的语法是:

理想情况下,查询将返回搜索量最大的关键字及其url对。
我不确定我是否需要使用解析函数,或者我是否可以创建一个自连接?我试过各种方法,但到目前为止运气不好。
任何帮助都将不胜感激。

kadbb459

kadbb4591#

理想情况下,查询将返回搜索量最大的关键字及其url对。
看起来你只是想 order by 以及 limit :

select t.*
from mytable t
order by search_vol desc limit 1

这会给你带来最大的麻烦 search_vol 在整张table里。
另一方面,如果您希望每个url搜索最多的关键字,那么这是一个最大的问题。以下是一个符合您最初尝试精神的解决方案,使用解析函数:

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()` .
huus2vyu

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

相关问题