如何通过SQL实现两表去重合并并自定义global行Count值?
可以通过SQL实现该需求
以下是具体的SQL语句,完全适配你的需求:
-- 生成修改后的global行,Count为表1中所有domain行的Count之和 SELECT 'global' AS Name, 'g' AS Value, (SELECT SUM(Count) FROM table1 WHERE Name = 'domain') AS Count UNION -- 取表1中除global外的所有行 SELECT Name, Value, Count FROM table1 WHERE Name != 'global' UNION -- 取表2中除global外的所有行 SELECT Name, Value, Count FROM table2 WHERE Name != 'global'
语句说明:
- 第一部分:单独构造
global行,其中Count值通过子查询计算表1中所有Name='domain'行的Count总和(即2+1=3)。 - 第二、第三部分:分别从表1和表2中排除
global行,保留其他所有数据。 - UNION关键字:自动合并三个结果集并去除重复行,正好满足你“合并两表所有无重复行”的要求。
如果你的global行的Value并非固定为g,可以把'g'替换为子查询获取,比如(SELECT Value FROM table1 WHERE Name='global' LIMIT 1),确保和原表的global值一致。
内容的提问来源于stack exchange,提问作者Gutiel67
相关产品推荐
相关产品推荐

