【问题标题】:how to aggregate and group by on multiple tables in postgresql in pandas如何在熊猫的postgresql中对多个表进行聚合和分组
【发布时间】:2018-06-04 03:40:42
【问题描述】:

我在 postgresql 中使用 group by 时遇到了一些问题。我不是高手,只是勉强凑合。

我已将 3 个表连接在一起,每个表都使用 id。还有一些汇总数据。然后我想做的是按区域分组,但是我得到重复的区域行,而不是被组合在一起。

元表

 -------------------------------
 |id    | Region   | Area      |
 -------------------------------
 |876   | London   | Ruislip   |
 -------------------------------
 | 899  |South West| Cheltenham|
 -------------------------------

T1 表

  -----------------------
 |id    | Total_spend   | 
 ------------------------
 |876   | 89999         |
 ------------------------
 | 899  | 76664         |
 ------------------------

T2表

  --------------------------
 |id    | Total_expend     | 
 ---------------------------
 |876   | 8999             |
 ---------------------------
 | 899  | 7837             |
 ---------------------------
 |876   | 89999            |
 ---------------------------
 | 899  | 6777             |

以下代码如下

 Select meta.region, T1.total_spend,
              Sum(T2.total_expend),
 from meta,t1,t2
 where meta.id = T1.id and meta.id=T2.id
 Group by meta.region, T1.total_spend

我在区域列中得到重复行,因为 T2 中有几行相同的行,但甚至不确定它是否正确聚合。

我不知道如何解决这个问题。

期望的输出

 ----------------------------------------
 | Region   | total_spend | total_expend|
 ----------------------------------------
 | London   | 89999       | 90898       |
 ----------------------------------------
 |South West| 76664       | 14614       |
 ----------------------------------------

所以 total_expend 由总和 T1 聚合,T2 通过 id 连接到元,如果可能的话,我想在元表上按区域分组

【问题讨论】:

  • 为什么这被标记为熊猫。我看不出熊猫有什么用处。
  • 你能发布想要的输出吗?

标签: sql postgresql


【解决方案1】:

听起来您只想按region 分组。

SELECT meta.region,
       sum(t1.total_spend),
       sum(t2.total_expend)
       FROM meta
            INNER JOIN t1
                       ON meta.id = t1.id
            INNER JOIN t2
                       ON meta.id = t2.id
       GROUP BY meta.region;

如果您另外GROUP BY t1.total_spend,您将在每个total_spend 的子组中将每个组拆分为region

还可以考虑在FROM 中使用显式JOIN 语法而不是逗号。它更易于阅读和理解。

【讨论】:

    猜你喜欢
    • 2021-12-14
    • 2023-02-07
    • 1970-01-01
    • 2023-04-01
    • 2021-07-20
    • 2020-04-18
    • 2019-01-10
    • 1970-01-01
    • 2013-11-16
    相关资源
    最近更新 更多