Функция группировки по счетчику в sqlalchemy - PullRequest
77 голосов
/ 27 июня 2009

Я хочу команду "сгруппировать и считать" в sqlalchemy. Как я могу это сделать?

Ответы [ 3 ]

129 голосов
/ 03 ноября 2010

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

from sqlalchemy import func
session.query(Table.column, func.count(Table.column)).group_by(Table.column).all()
25 голосов
/ 11 марта 2011

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

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

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

15 голосов
/ 05 июля 2018

Если вы используете 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()
...