gpt4 book ai didi

mysql - 如何将两个表的结果合并到一个输出文件中?

转载 作者:行者123 更新时间:2023-11-30 21:23:52 26 4
gpt4 key购买 nike

我在 MySQL 数据库中有两个表;表 1、表 2。

它们都有单列(浮点)值。它实际上是我们研究项目的一个转储,它产生一个单一的值(value)结果。

而且许多这些值会重复出现,并且在 Python 中对它们进行排序和过滤会很麻烦,所以我认为将它们转储到数据库中的表中可能会更快。

因此 SQL 查询的最终结果如下按值分组:

value    table1_count   table2_count
1.0 0 1
1.1 1 3
2.1 4 5

我提出的查询如下:

select everything.value, everything.count1, everything.count2
from
((
select X as value, count(*) from table1
) union all (
select X as value, count (*) from table2
)) everything
group by everything.value
into outfile "/count";

有什么建议吗?

谢谢,

最佳答案

您不能在内部查询中按组进行计数,因为您是在外部查询中定义组。这应该更简单:

select everything.value, count(*)
from
(
select X as value from table1
union all
select X from table2
) everything
group by value
into outfile "/count";

还有一些琐事:当您使用UNION 时,您只需要在第一个联合查询中定义列别名。


回复你的评论。这是一种解决方案:

select everything.value, sum(t = 'success') as s, sum(t = 'failure') as f
from
(
select X as value, 'success' as t from table1
union all
select X, 'failure' from table2
) everything
group by value
into outfile "/count";

这使用了 MySQL 中的一个技巧,即 bool 表达式返回 0 表示假或 1 表示真。所以当你总结一堆表达式时,你会得到表达式为真的行数。 (不要在其他品牌的 SQL 数据库中依赖此技巧。)

关于mysql - 如何将两个表的结果合并到一个输出文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1295168/

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