如何用NRQL在New Relic中按AppVersion统计唯一Uuid用户?
解决NRQL跨多天按应用版本统计唯一用户的问题
问题分析
你之前用count(*)统计的是会话总数,同一用户的多次会话会被重复计算;而子查询的方式因为存在条目上限限制,当跨多天查询导致数据量较大时,会出现统计结果不准确的情况。
正确的NRQL写法
直接使用New Relic提供的uniq()函数统计唯一UUID即可,这个函数专门用于计算指定属性的唯一值数量,且不会受子查询的条目限制:
SELECT uniq(uuid) FROM MobileSession WHERE appName = 'app-name' SINCE 7 days ago -- 替换为你需要的查询天数 FACET appVersion LIMIT MAX
扩展说明
uniq(uuid)会自动为每个appVersion分组统计唯一用户UUID的数量,同一用户在同一版本下无论产生多少次会话,只会被统计一次。- 如果需要按日期+版本的维度拆分统计(比如查看每天各版本的唯一用户数),可以扩展FACET字段:
SELECT uniq(uuid) FROM MobileSession WHERE appName = 'app-name' SINCE 7 days ago FACET appVersion, dateOf(timestamp) LIMIT MAX
内容的提问来源于stack exchange,提问作者Elye
相关产品推荐
相关产品推荐

