【发布时间】:2015-03-31 09:54:12
【问题描述】:
我想使用 SQLAlchemy 表中的相同标签来重新聚合一些数据(例如,我想遍历 mytable.c 以准确获取列名)。
我有一些支出数据,如下所示:
| name | region | date | spending |
| John | A | .... | 123 |
| Jack | A | .... | 20 |
| Jill | B | .... | 240 |
然后我将它传递给我们现有的函数,该函数汇总了超过 2 个时期的支出(使用案例语句)并按地区分组:
grouped table:
| Region | Total (this period) | Total (last period) |
| A | 3048 | 1034 |
| B | 2058 | 900 |
该函数返回一个 SQLAlchemy 查询对象,然后我可以使用 subquery() 重新查询例如:
subquery = get_aggregated_data(original_table)
region_A_results = session.query(subquery).filter(subquery.c.region = 'A')
然后我想重新聚合这个子查询(对可以求和的每一列求和,用字符串 'other' 替换 region 列。
问题是,如果我遍历 subquery.c,我得到的标签看起来像:
anon_1.region
anon_1.sum_this_period
anon_1.sum_last_period
有没有办法从一组列对象中获取文本标签,而不需要 anon_1. 前缀?特别是因为我觉得前缀可能会根据 SQLAlchemy 决定生成查询的方式而改变。
【问题讨论】:
标签: sql postgresql sqlalchemy