Quick BI基于MaxCompute用SQL生成数据集报错“FAILED: ODPS-0130071:[141,13] Semantic analysis exception - expect query with one row result (must have aggregations and no groupby clause)”
更新时间:
问题描述
Quick BI基于MaxCompute用SQL生成数据集报错“FAILED: ODPS-0130071:[141,13] Semantic analysis exception - expect query with one row result (must have aggregations and no groupby clause)”。完整的异常堆栈信息如下:
traceId:818e37e3-87c6-47c9-9341-4bf23dde01a0;
errMsg:数据源执行SQL失败:INTERNAL: java.lang.RuntimeException: SQL execute error by datasource... java.sql.SQLException: execute sql [ -- SQL From QuickBI, traceId: 818e37e3-87c6-47c9-9341-4bf23dde01a0 select * from (with stockin as( select stockin_x.owner_name, sku_code, src_order_no, goods_name, spec_name, barcode, brand_name, right_price, stockin_date, goods_count, id, sum(goods_count) over( PARTITION BY owner_name, sku_code order by id ) as ljcount from ( select skus.owner_name, stockin_1.sku_code, stockin_1.src_order_no, skus.spu_name goods_name, skus.sku_name spec_name, skus.barcode, skus.brand_name, stockin_1.stockin_right_price right_price, stockin_1.stockin_date, stockin_1.stockin_num goods_count, ROW_NUMBER() over( order by stockin_1.sku_code, stockin_1.stockin_date, stockin_1.src_o...问题原因
根据异常信息分析原因如下:生成数据集的SQL查询预期返回单一结果行,但可能包含了分组(GROUP BY)操作且未正确使用聚合函数,或者没有分组但缺少聚合函数来确保单一结果。
解决方案
移除GROUP BY子句:如果SQL查询的目的为获取单行结果(如计数、总和等聚合信息),应确保SQL中不包含GROUP BY子句。
添加聚合函数:在SELECT语句中,对所有非聚合列使用聚合函数(SUM、AVG、COUNT、MAX、MIN等),以符合返回单行结果集的要求。
检查SQL逻辑:确认查询需求,若确实需要分组统计,请调整为仅使用聚合函数并设计合理的分组逻辑。若只需单一汇总值,请避免使用GROUP BY。
确保修改后的查询满足“有聚合无分组”或“无聚合有分组”的规则,以匹配错误提示的期望。
适用于
Quick BI
该文章对您有帮助吗?