gpt4 book ai didi

mysql - 基于group by子句插入多个表

转载 作者:行者123 更新时间:2023-11-29 12:24:03 24 4
gpt4 key购买 nike

我的问题与 MySQL 相关。假设我有一个名为“shapes”的表,其中包含所有类型的形状。

我可以按如下方式获取每种形状类型的计数:

select day, shape_type, count(*) from shapes group by day, shape_type

在我的特定设置中,数据库已经存在,并且在管道的另一端,我有一组表,如下所示:

sum_square_day
sum_rectangle_day
sum_circle_day

是否有可能有一个 SQL 只从形状中查询一次并插入到其他表中?

换句话说,我知道我可以做 3 个陈述:

    INSERT INTO sum_square_day (day,count)
SELECT day,count FROM (
SELECT day, count(*) from shapes where shape_type = "square") AS tmp_shapes

然后是圆形和矩形,但这需要 3 次来处理形状。

我可以对按 shape_type 分组的形状执行一个语句,然后利用结果将其放入每个相应的表中吗?

谢谢

最佳答案

无法仅通过一条语句来解决此问题,但为了获得更好的性能,我建议使用以下语句:

使用原始选择的结果创建临时表。这样,COUNT 和 GROUP BY 命令(需要更多时间)将仅执行一次。

select day, shape_type, count(*) 
into temp_table
from shapes
group by day, shape_type

然后执行3个INSERT命令:

INSERT INTO sum_square_day (day,count)
SELECT day,count
FROM temp_table
WHERE shape_type = "square"

最后删除临时表。

关于mysql - 基于group by子句插入多个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28610364/

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