gpt4 book ai didi

mysql - 从两个表的联合中选择

转载 作者:行者123 更新时间:2023-11-29 04:35:21 25 4
gpt4 key购买 nike

我有两个表 Cars2016Cars2015,它们具有完全相同的列。

我想简单地连接这两个表来创建这种查询:

SELECT Mark, COUNT(Models) FROM (Cars2015 UNION Cars2016) GROUP BY Mark

此查询旨在了解每个标记有多少个模型,累计 2015 年和 2016 年。

我怎样才能有效地做到这一点?

谢谢!

最佳答案

可能最有效的方法是在每个表中计数,然后合并并求和。

SELECT Mark, SUM(count) AS count
FROM (
SELECT Mark, COUNT(*) AS count
FROM Cars2015
GROUP BY Mark
UNION ALL
SELECT Mark, COUNT(*) AS count
FROM Cars2016
GROUP BY Mark
) AS u
GROUP BY Mark

如果您在表中的 Mark 上有索引,则子查询应该非常有效。然后它会合并包含聚合的相对较小的中间表,然后组合它们。

另一种选择是使用 MERGE storage engine ,它允许您创建一个包含其他表的联合的虚拟表:

CREATE TABLE Cars (
-- column names here
) ENGINE=MERGE UNION=(Cars2015, Cars2016);

SELECT Mark, COUNT(*)
FROM Cars
GROUP BY Mark;

关于mysql - 从两个表的联合中选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43910104/

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