postgres 中的跨表求和连接

问题描述 投票:0回答:1

我有这张桌子:

产品 金额 没有客户
Prdct_1 100 9
Prdct_1 200 15
Prdct_2 50 2
Prdct_3 40 5
Prdct_3 80 5
Prdct_4 10 1

我想将其加入下表

产品 无账单
Prdct_1 6
Prdct_1 3
Prdct_2 4
Prdct_3 10
Prdct_3 5
Prdct_4 2

此外,我想添加所有类别的总和。所以结果应该是这样的:

产品 金额 没有客户 无账单
Prdct_1 300 24 9
Prdct_2 50 2 4
Prdct_3 120 10 15
Prdct_4 10 1 2
总计 480 35 30

我该如何解决这个问题?感谢您的回答。

postgresql pivot-table
1个回答
0
投票

我没有可以立即测试的 postgres,但是看看这个

sql
,希望这对你有用...

SELECT
  product,
  SUM(amount) AS amount,
  SUM(no_of_customers) AS no_of_customers,
  SUM(no_of_bills) AS no_of_bills
FROM (
  SELECT
    product,
    amount,
    no_of_customers
  FROM table1
  UNION ALL
  SELECT
    product,
    0 AS amount,
    0 AS no_of_customers,
    no_of_bills
  FROM table2
) AS t
GROUP BY product
ORDER BY product;
© www.soinside.com 2019 - 2024. All rights reserved.