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

PRESTO(Athena)问卷场景多条件匹配独立用户统计方案咨询

最优实现方案

基于Presto SQL的特性,优先使用map_agg函数按用户聚合所有问答对后再统计,逻辑清晰且性能最优,完整SQL如下:

SELECT
    SUM(CASE WHEN answer_map['can you sing?'] = 'Yes' AND answer_map['can you dance?'] = 'Yes' THEN 1 ELSE 0 END) AS "can sing & dance",
    SUM(CASE WHEN answer_map['can you sing?'] = 'Yes' THEN 1 ELSE 0 END) AS "can sing",
    SUM(CASE WHEN answer_map['can you dance?'] = 'Yes' THEN 1 ELSE 0 END) AS "can dance",
    COUNT(*) AS "total user_ids"
FROM (
    SELECT
        user_id,
        MAP_AGG(question, answer) AS answer_map
    FROM questionnaire
    GROUP BY user_id
) user_answer

如果运行时出现key不存在的报错,可以将answer_map['xxx']替换为ELEMENT_AT(answer_map, 'xxx'),该函数取不存在的key时会返回NULL,不会触发报错,判断逻辑不受影响。

关于字符串拼接正则方案的说明

该方案虽然可以实现需求,但不推荐使用,存在两个明显缺陷:

  • 性能开销更大:字符串拼接、正则匹配的计算成本远高于键值对匹配,数据规模较大时查询效率差异明显
  • 易出现匹配误差:如果问题内容存在重叠字符,正则匹配容易出现误判,还需要额外处理分隔符、特殊字符转义等逻辑,维护成本高

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 14:18:03