【发布时间】:2021-04-26 13:16:33
【问题描述】:
我需要根据同一表中的信息更新 PostgreSQL 表中的值。
例如表格是这样的
更新前:
| index | shop_id | tire_type | count |
|---|---|---|---|
| 0 | 0 | Winter | Null |
| 1 | 0 | Summer | Null |
| 2 | 0 | Winter | Null |
| 3 | 0 | Winter | Null |
| 4 | 1 | Summer | Null |
| 5 | 1 | Winter | Null |
更新后:
| index | shop_id | tire_type | count |
|---|---|---|---|
| 0 | 0 | Winter | 3 |
| 1 | 0 | Summer | 1 |
| 2 | 0 | Winter | 3 |
| 3 | 0 | Winter | 3 |
| 4 | 1 | Summer | 1 |
| 5 | 1 | Winter | 1 |
对于此示例,该表包含通过 shop_id 连接到 shop 表的轮胎类型。 count 列应该包含相同 shop_id 上相同轮胎类型的数量。
从上面的例子我们可以看到 shop_id = 0 的 Winter 类型的数量是 3 所以每一行 Winter 类型的 count 列中应该有数字 3。
如何用 SQL 来做到这一点?或者在现有 DataFrame 上使用 Python Pandas DataFrame(将插入现有 PostgresSQL 表中)?
附:无法更改表架构。首选的解决方案是使用 Pandas,但也可以使用 PostgreSQL。
【问题讨论】:
标签: python sql pandas postgresql