在 MySQL 中对 UNION 结果求和的简单方法
我有三个表(t1、t2、t3)的并集。
每次重新运行完全相同数量的记录,第一列是id
,第二列amount
:
1 10
2 20
3 20
1 30
2 30
3 10
1 20
2 40
3 50
SQL中有没有一种简单的方法来总结它,即只得到:
1 60
2 80
3 80
I have a union of three tables (t1, t2, t3).
Each rerun exactly the same number of records, first column is id
, second amount
:
1 10
2 20
3 20
1 30
2 30
3 10
1 20
2 40
3 50
Is there a simple way in SQL to sum it up, i.e. to only get:
1 60
2 80
3 80
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
我对每个表进行分组并联合,因为我认为它可能会更快,但您应该尝试这两种解决方案。
I groupped each table and unioned because i think it might be faster, but you should try both solutions.
子查询:
Subquery:
不确定 MySQL 是否使用公用表表达式,但我会在 postgres 中执行此操作:
我认为这也应该可以解决问题。
Not sure if MySQL uses common table expression but I would do this in postgres:
I think that should do the trick as well.
由于之前的答案不是很清楚,请记住提供别名(在 MySQL/MariaDb 上),否则您会收到错误:
每个派生表必须有自己的别名
As it's not very clear from previous answers, remember to give aliases (on MySQL/MariaDb) or you'll get error:
Every derived table must have its own alias
是的!!!没关系!谢谢!!!!
我的代码整理:
Yes!!! Its okay! Thanks!!!!
My code finishing:
在 MSSQL 中,您可以这样编写,但是执行 UNION ALL 列对于两种方式应该是相同的。
我给出了这个例子,以便您可以理解这个过程......
IN MSSQL You can write this way, But Doing UNION ALL THE Column should be the same for both ways.
I have given this example So that you can understand the process...