使用查询语句出错

方便更快捷的说明问题,可以按需填写(可删除)

使用环境:5.0.0

场景、问题:

分库建为school_code

执行SQL如下:

SELECT
*
FROM
v_diag_obj_subject T142
INNER JOIN dw_diag_obj T80 ON T142.diag_obj_id = T80.diag_obj_id
AND T80.school_code IN ( ‘bjzx’ )
AND T80.school_term_id IN ( ‘2111’ )
INNER JOIN dw_naire_number_answer_obj_avg T137 ON T80.diag_obj_id = T137.diag_obj_id
AND T80.school_code = T137.school_code
AND T80.school_term_id = T137.school_term_id
GROUP BY
T142.subject_id,
T142.subject_name,
T142.subject_show_seq,
T80.show_seq

在代理端报错是:Expression ‘T142.diag_obj_id’ is not being grouped.

如果只执行group 之上的sql,是可以的。

这个提示是 federation 执行引擎报出来的, DIAG_OBJ_ID 字段需要加到 group by 语句中。

为啥要加这个字段呢?我要是在Group by之后加上这个字段,结果不就不一致了?

这应该是 sql 规范吧,要么加到 group by 上,要么在 projection 中使用聚合函数。

okok,明白,是我疏忽了,这个sql我是从(https://community.sphere-ex.com/t/topic/699)
这里面简化出来的,帮忙看下这个问题

好的,我看下:ok_hand:t2:

京ICP备2021015875号