You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Presto中基于URL首段路径对关联数值进行聚合

Presto 按URL首段路径分组聚合实现方案

需求说明

对给定URL字段按「域名+首段路径」分组,聚合计算对应Some_Value的总和。

实现方案

方法1:substr配合定位函数实现(符合你指定的substr使用要求)

通过strpos定位第二个/的位置,再做截断,兼容仅含一级路径的URL场景:

SELECT 
  -- 截取从开头到第二个/之前的内容,无第二个/时保留完整URL
  substr(
    URL, 
    1, 
    coalesce(nullif(strpos(URL, '/', 2), 0), length(URL))
  ) AS URL,
  sum(Some_Value) AS agg_value
FROM 你的数据表名
GROUP BY 1

参数解释:

  • strpos(URL, '/', 2):查找URL中第2次出现/的索引位置,不存在第2个/时返回0
  • nullif(返回值, 0):将无匹配时返回的0转为null
  • coalesce(返回值, length(URL)):如果是null(无第二个/)则取完整URL长度,避免截断错误

方法2:split_part拆分拼接实现(更简洁)

直接按/拆分URL后拼接域名和首段路径,逻辑更直观不易出错:

SELECT
  split_part(URL, '/', 1) || '/' || split_part(URL, '/', 2) AS URL,
  sum(Some_Value) AS agg_value
FROM 你的数据表名
GROUP BY 1

两种方法执行后都可以得到你预期的聚合结果。

内容的提问来源于stack exchange,提问作者Kbbm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 23:36:03