Подтвердить что ты не робот

Функция group by & count в sqlalchemy

Мне нужна команда "group by and count" в sqlalchemy. Как я могу это сделать?

4b9b3361

Ответ 1

Документация при подсчете говорит, что для запросов group_by лучше использовать func.count():

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

Ответ 2

Вы также можете рассчитывать на несколько групп и их пересечение:

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

В приведенном выше запросе будут возвращены подсчеты для всех возможных комбинаций значений из обоих столбцов.

Ответ 3

Если вы используете свойство Table.query:

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

Если вы используете метод session.query() (как указано в ответе miniwark):

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