【发布时间】:2021-03-05 18:23:07
【问题描述】:
我正在使用 postgresql 8.3.23
我有一个表,其中一个 ip 表示为 3 个不同的列。
在不使用多个连接和多个查询的情况下,按 IP 聚合并按列获取总和的最佳方法是什么?
表格
| source | trans | dest |
|---|---|---|
| ip1 | ip2 | |
| ip1 | ip1 | ip3 |
| ip1 | ip2 | ip3 |
| ip2 | ip4 | ip5 |
我想要得到什么
| ip | source | trans | dest |
|---|---|---|---|
| ip1 | 3 | 1 | 0 |
| ip2 | 1 | 1 | 1 |
| ip3 | 0 | 0 | 2 |
| ip4 | 0 | 1 | 0 |
| ip5 | 0 | 0 | 1 |
【问题讨论】:
-
为什么你使用的 Postgres 版本已经超过 7 年了?
-
简单来说,这是一个基于postgresql 8.3.23的Greenplum数据库。迁移到更体面的版本需要完全重建,这对于包含 3.8 PB 数据的数据库来说具有挑战性