2010-08-17 2 views
0

мне нужна база данных, которая поддерживает шарниров, чтобы получить опорные колонны с 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 
) 
+0

Учитывая, что вопрос старый, просто интересно какие-либо обновления с недавней SQL-алхимией? – Tensor

ответ

0

Я использую следующий рецепт link text. Я получаю данные, а затем поворачиваю.

0

Это довольно старый, но Postgres теперь делает поворотное: http://www.craigkerstiens.com/2013/06/27/Pivoting-in-Postgres

Предположительно вы должны использовать sa.sql.func.crosstab и т.д. в SQLAlchemy. Угадайте, что вы могли бы отобразить измененный объект для объекта в ORM и вытащить данные так, как вам нужно.

 Смежные вопросы

  • Нет связанных вопросов^_^