Функция группировки и подсчета в sqlalchemy
-
20-08-2019 - |
Вопрос
Мне нужна команда «группировать и подсчитывать» в sqlalchemy.Как я могу это сделать?
Решение
А документация по подсчету говорит, что для 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()
Не связан с StackOverflow