gpt4 book ai didi

mysql - 2个单独表格的总和

转载 作者:行者123 更新时间:2023-11-28 23:52:02 25 4
gpt4 key购买 nike

我下面有 2 个表

表一

ID  TYPE MONTH QTY
1 I6 1 5
2 I5 2 5
3 I4 1 5
4 I6 2 5

表2

ID  TYPE MONTH QTY
1 I6 1 5
2 I5 1 5
3 I5 2 5

期望的输出(两个表的总和)

TYPE MONTH1QTY MONTH2QTY
IP4 5 0
IP6 10 5
IP5 5 10

我怎样才能做到这一点?

提前致谢。

最佳答案

因为这两个表的格式相同,所以使用 UNION ALL (NOT 只是 UNION 将两个表放在一起很简单,因为这会删除重复的数据集)

然后您可以使用 SUM(CASE WHEN) 来转换数据。

SELECT
type,
SUM(CASE WHEN month = 1 THEN qty END) AS month_1_qty,
SUM(CASE WHEN month = 2 THEN qty END) AS month_2_qty
FROM
(
SELECT * FROM table1
UNION ALL
SELECT * FROM table2
)
unified_table
GROUP BY
type

请注意,如果没有动态 SQL,您必须对要查询的月份进行硬编码。 (您不能仅仅因为数据中出现新的月份就“神奇地”出现额外的列。)

在这种情况下,您不知道要查询哪个月份,请以规范化形式保存数据,然后在您的应用程序/表示层中进行数据透视。

SELECT
type,
month,
SUM(qty) AS qty
FROM
(
SELECT * FROM table1
UNION ALL
SELECT * FROM table2
)
unified_table
GROUP BY
type,
month

如果您在每个表中有不同的字段,只需在 UNION ALL 中更具体一些。

(
SELECT type, month, qty FROM table1
UNION ALL
SELECT type, month, qty FROM table2
)

关于mysql - 2个单独表格的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32463097/

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