创建级联结果表

Creating concatenated results tables

我有table个赞:

我有 table B 喜欢:

我想要一个结果 table 连接列并在必要时合并行,例如:

我尝试使用 Union,但它并没有完全满足我的需求。有没有其他有效的方法可以达到这个效果。

您已粘贴图片。因此,我们很难复制文本和创建脚本。您应该在提问时分享脚本。

UNION 有什么问题,请分享。我认为下面的查询应该有效。但也请与工会分享您的问题。

SELECT Fruit Fruit_Veggie, Count count_Fruit, percent percent_Fruit, 0 Count_Veggie, 0 pecent_Veggie FROM A
UNION
SELECT veggie, 0, 0, count, percent from B

您需要进行完全连接或不同的联合。您知道这一点是因为您有一行用于 Tomato,其中包含来自两个表的值。这将为您提供空值,您将使用合并将其变成 0(零)。这是作业吗?

如果 SQLite 支持 FULL 连接,这将很容易解决,但它不支持。

首先使用 UNION ALL 创建一个结果集,其中包含 2 个表的所有行以及包含水果和蔬菜的附加列,然后进行聚合,因此在 'tomato' 这样的情况下,您将只有 1 行:

SELECT Fruit_Veggie, 
       SUM(Count_Fruit) Count_Fruit,
       SUM(percent_fruit) percent_fruit,
       SUM(Count_Veggie) Count_Veggie,
       SUM(percent_Veggie ) percent_Veggie 
FROM (
  SELECT Fruit Fruit_Veggie, count Count_Fruit, percent percent_fruit, 0 Count_Veggie, 0 percent_Veggie 
  FROM TableA
  UNION ALL
  SELECT Veggies, 0, 0, count, percent
  FROM TableB
)
GROUP BY Fruit_Veggie