Pergunta

Eu quero um "grupo por e contar" comando no sqlalchemy. Como posso fazer isso?

Foi útil?

Solução

A documentação na contagem diz que para consultas group_by é melhor para uso func.count():

from sqlalchemy import func
session.query(Table.column, func.count(Table.column)).group_by(Table.column).all()

Outras dicas

Você também pode contar com vários grupos e sua interseção:

self.session.query(func.count(Table.column1),Table.column1, Table.column2).group_by(Table.column1, Table.column2).all()

A consulta acima irá retornar contagens para todas as combinações possíveis de valores de ambas as colunas.

Se você estiver usando propriedade Table.query:

from sqlalchemy import func
Table.query.with_entities(Table.column, func.count(Table.column)).group_by(Table.column).all()

Se você estiver usando método session.query() (como indicado na resposta de miniwark):

from sqlalchemy import func
session.query(Table.column, func.count(Table.column)).group_by(Table.column).all()
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top