使用sqlalchemy在数据库中透视表

时间:2010-08-17 10:18:15

标签: sqlalchemy pivot

我需要一个支持枢轴的数据库来获取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
)

2 个答案:

答案 0 :(得分:0)

我使用以下食谱link text。我得到数据然后转动。

答案 1 :(得分:0)

这已经过时了,但postgres现在可以转动:http://www.craigkerstiens.com/2013/06/27/Pivoting-in-Postgres

据推测,你必须在sqlalchemy中使用sa.sql.func.crosstab等。猜猜你可以将交叉选择的选择映射到ORM中的对象,并根据需要将数据拉出来。