我有以下简单查询
select
jrt.threadId,
JSON_ARRAYAGG(
JSON_OBJECT(
'roundId',jrr.roundId,
'bets', JSON_ARRAYAGG(
JSON_OBJECT(
'betId', bets.betId,
'amount', bets.amount
)
)
)
) as rounds
from threads jrt
left join rounds jrr on jrt.threadId = jrr.threadId
left join bets on jrr.roundId= bets.roundId
group by jrt.threadId
如果我从头一个bets
键值中删除了JSON_OBJECT
,这基本上可以工作。
我很难理解错误的确切原因,因为这几乎没有暗示性。
{"code":"ER_INVALID_GROUP_FUNC_USE","errno":1111}
如果我在JSON_ARRAY
上使用bets
聚合函数而不是JSON_ARRAYAGG
,则查询也可以工作。
如果Bets
是一个聚合,为什么JSON_ARRAYAGG
会引发错误?