gpt4 book ai didi

mysql - 具有不同子查询的聚合查询会终止每个连接

转载 作者:行者123 更新时间:2023-11-29 02:09:33 25 4
gpt4 key购买 nike

此查询(来自任何客户端、cli、workbench、dbeaver、php 库)完全终止 mysql 8.0.16 中服务器上的每个连接,按预期在 8.0.15 上运行。

SELECT SUM( `x` )
FROM (
SELECT DISTINCT
`T`.`x`
FROM
JSON_TABLE(
'[1]',
'$[*]' COLUMNS(
`x` INT PATH "$"
)
) T
) y;

使用临时表而不是子查询按预期工作(它不会使每个 mysql 连接崩溃)

有人遇到过这个问题吗?

编辑:抱歉没有说清楚,与 SUM 方法无关,似乎任何具有不同子查询的聚合函数(GROUP_CONCAT、JSON_ARRARYAGG ...)都会使 8.0.16 上的每个连接崩溃

最佳答案

看起来问题是 DISTINCT(很可能是一个错误):

SELECT SUM( `x` )
FROM (
SELECT DISTINCT `T`.`x` FROM
JSON_TABLE('[1]','$[*]' COLUMNS(`x` INT PATH "$")) T
) y;
-- error

SELECT SUM( DISTINCT `x` )
FROM (
SELECT `T`.`x` FROM
JSON_TABLE('[1]','$[*]' COLUMNS(`x` INT PATH "$")) T
) y;
-- correct

db<>fiddle demo

编辑:

WITH cte AS (
SELECT `T`.`x` FROM
JSON_TABLE('[1]','$[*]' COLUMNS(`x` INT PATH "$")) T
), cte2 AS (
SELECT /*+ NO_MERGE(cte) */ * FROM cte
)
SELECT JSON_ARRAYAGG(`x`)
FROM cte2

即使不使用 DISTINCT,问题似乎也与具体化有关。

关于mysql - 具有不同子查询的聚合查询会终止每个连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56613406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com