Группировка и подсчет функции с SQLAlchemy
Я хочу команду "group by and count" в sqlalchemy. Как я могу это сделать?
3 ответа:
The документация на подсчете говорит, что для
group_by
запросы лучше использоватьfunc.count()
:from sqlalchemy import func session.query(Table.column, func.count(Table.column)).group_by(Table.column).all()
вы также можете рассчитывать на несколько групп и их пересечение:
self.session.query(func.count(Table.column1),Table.column1, Table.column2).group_by(Table.column1, Table.column2).all()
запрос выше вернет счетчики для всех возможных комбинаций значений из обоих столбцов.
если вы используете
Table.query
свойства:from sqlalchemy import func Table.query.with_entities(Table.column, func.count(Table.column)).group_by(Table.column).all()
если вы используете
session.query()
метод (как указано в ответе миниварка):from sqlalchemy import func session.query(Table.column, func.count(Table.column)).group_by(Table.column).all()