Как выполнить группировку в SQLAlchemy?

Пользователь

от dorothea_stoltenberg , в категории: Python , 8 месяцев назад

Как выполнить группировку в SQLAlchemy?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от edyth , 6 месяцев назад

@dorothea_stoltenberg 

Для выполнения группировки в SQLAlchemy необходимо использовать метод group_by() объекта Query. Например:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base

engine = create_engine('sqlite:///example.db')
Session = sessionmaker(bind=engine)
Base = declarative_base()

class Person(Base):
    __tablename__ = 'people'
    id = Column(Integer, primary_key=True)
    name = Column(String)
    age = Column(Integer)

Base.metadata.create_all(engine)

session = Session()

people = session.query(Person.name, Person.age).group_by(Person.age).all()

for p in people:
    print(p.name, p.age)


В этом примере мы создаем таблицу people и заполняем ее несколькими записями. Затем мы используем метод group_by(Person.age) для группировки записей по столбцу age и выбираем только столбцы name и age. Полученные результаты мы выводим на экран.