使用 sqlalchemy 数据库中的数据透视表

发布于 2024-09-14 20:08:37 字数 521 浏览 5 评论 0原文

我需要一个支持枢轴的数据库来使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

沉溺在你眼里的海 2024-09-21 20:08:37

我使用以下配方链接文本。我获取数据然后进行旋转。

I use the following recipe link text. I get the data and then pivot.

娜些时光,永不杰束 2024-09-21 20:08:37

这已经很老了,但是 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文