使用 sqlalchemy 数据库中的数据透视表
我需要一个支持枢轴的数据库来使用 sqlalchemy 获取枢轴列,如下所示:
# find all possible values of the pivot
pivot_values = map(
operator.itemgetter(0),
select([pivot_on], from_obj=[report]).distinct().execute()
)
# build the new pivot columns
new_columns = [
pivot_func(case([(pivot_on == value, column)])).label("%s %s" % (value, column))
for value in pivot_values
for column in pivot_columns
]
return select(
non_pivot_columns + new_columns,
from_obj=[report],
group_by=group_by
)
I need a database that support pivots to get pivot columns with sqlalchemy, something like that:
# find all possible values of the pivot
pivot_values = map(
operator.itemgetter(0),
select([pivot_on], from_obj=[report]).distinct().execute()
)
# build the new pivot columns
new_columns = [
pivot_func(case([(pivot_on == value, column)])).label("%s %s" % (value, column))
for value in pivot_values
for column in pivot_columns
]
return select(
non_pivot_columns + new_columns,
from_obj=[report],
group_by=group_by
)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我使用以下配方链接文本。我获取数据然后进行旋转。
I use the following recipe link text. I get the data and then pivot.
这已经很老了,但是 postgres 现在可以进行旋转: http://www. craigkerstiens.com/2013/06/27/Pivoting-in-Postgres
大概你必须在 sqlalchemy 中使用 sa.sql.func.crosstab 等。我猜你可以将 crostabbed 选择映射到 ORM 中的一个对象,然后根据需要将数据拉出来。
This is pretty old, but postgres now does pivoting: http://www.craigkerstiens.com/2013/06/27/Pivoting-in-Postgres
Presumably you would have to use sa.sql.func.crosstab etc in sqlalchemy. Guess you could map the crostabbed select to an object in the ORM and the pull the data out like that if you wanted.