我有 2 个表:
表 1
mmsi type l w flag value
123 456 A B C 37
236 567 X Y Z 28
表2
mmsi type l w flag value
123 456 A B C 30
234 567 X Y Z 20
我想运行一个查询来获取唯一值,并为每一行获取存储在最后一个字段中的值的总和:
决赛 table
mmsi type l w flag value
123 456 A B C 67
234 567 X Y Z 20
236 567 X Y Z 28
我该怎么做?我正在尝试使用 UNION ALL 和 SUM
SELECT "mmsi", "type", "l", "w", "flag", "value", SUM ("value")
FROM (SELECT "mmsi", "type", "l", "w", "flag", "value" FROM "table 1" UNION ALL
SELECT "mmsi", "type", "l", "w", "flag", "value" FROM "table 2") as def
GROUP BY "mmsi", "type", "l", "w", "flag", "value"
但这给了我以下错误的结果:
mmsi type l w flag value sum
123 456 A B C 37 37
123 456 A B C 30 30
234 567 X Y Z 20 20
236 567 X Y Z 28 28
谢谢!
最佳答案
您需要从 select
和 group by
中删除 value
:
SELECT "mmsi", "type", "l", "w", "flag", SUM("value")
FROM (SELECT "mmsi", "type", "l", "w", "flag", "value" FROM "table 1"
UNION ALL
SELECT "mmsi", "type", "l", "w", "flag", "value" FROM "table 2"
) as def
GROUP BY "mmsi", "type", "l", "w", "flag";
关于sql - 联合所有和总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51746603/