gpt4 book ai didi

Mysql union 不求和相同的值

转载 作者:太空宇宙 更新时间:2023-11-03 11:32:19 25 4
gpt4 key购买 nike

下面是mysql的示例代码

SELECT ROUND(SUM(final.spend),4) as tot_spend
FROM
(SELECT 1 as spend FROM `tab1` as tds WHERE 1
UNION
SELECT 1 as spend FROM `tab2` as obm WHERE 1
) as final

为了更好地理解,我在查询中将列值替换为 1,因为两个表中的值相同,如果在上面运行查询我得到结果 1,如果我更改任何一个表值,它不会对值求和。将 tab2 值更改为 2 并运行意味着它显示 3,根据我的理解,如果两个表中的值相同意味着 SUM 将不起作用,不同意味着它的 SUM 是表中的值,是默认值还是我的理解是错误的?任何帮助解决我的问题的人,我需要对两个表中的任何值(相同或不同)求和。

最佳答案

UNION 运算符默认只选择不同的值。要允许重复值,请使用 UNION ALL:

SELECT ROUND(SUM(final.spend),4) as tot_spend
FROM
(SELECT 1 as spend FROM `tab1` as tds WHERE 1
UNION ALL
SELECT 1 as spend FROM `tab2` as obm WHERE 1
) as final

这会给你正确的总和。

关于Mysql union 不求和相同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48823417/

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