NRQL查询按error.class分组统计报错:未知表达式error.class
NRQL查询报错:Unknown expression error.class 解决方案
问题根源
你的查询违反了NRQL的语法规则:SELECT子句中的非聚合字段必须包含在FACET子句中,或者通过聚合函数处理。你在SELECT中包含了error.message,但它既不是聚合函数的结果,也没有出现在FACET列表里,这导致解析器报错,且错误信息误指向了error.class。
修正方案
根据你的需求选择以下任一方案:
同时按error.class和error.message分组
如果需要保留error.message并作为分组维度,将其加入FACET:FROM TransactionError SELECT count(*) AS 'ErrorCount', error.class, error.message SINCE 24 hours ago FACET error.class, error.message仅按error.class分组,移除error.message
如果不需要展示error.message,直接从SELECT中删除:FROM TransactionError SELECT count(*) AS 'ErrorCount', error.class SINCE 24 hours ago FACET error.class按error.class分组,收集分组内的所有error.message
如果想查看每个error.class下对应的所有错误消息,使用collect()聚合函数:FROM TransactionError SELECT count(*) AS 'ErrorCount', error.class, collect(error.message) SINCE 24 hours ago FACET error.class
补充说明
NRQL的解析器在处理不符合规则的字段时,有时会抛出不准确的错误提示,把问题指向FACET字段,但实际问题出在SELECT子句的非聚合字段未满足分组要求。
内容的提问来源于stack exchange,提问作者AxleWack
相关产品推荐
相关产品推荐

