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

Использование alias() для 'select as' в SQLAlchemy

Скажем, у меня есть таблица "share" со следующими столбцами:

company    price    quantity
Microsoft  100      10
Google     99       5
Google     99       20
Google     101      15

Я хотел бы запустить эквивалент инструкции SQL следующим образом:

select price, sum(quantity) as num from shares where company='Google' group by price;

Ближайший я пришел:

result = dbsession.query(Shares.price, func.sum(Shares.quantity)).filter(Shares.company== 'Google').group_by(Shares.price).all()

У меня возникают проблемы с настройкой суммы (количества) как num 'в sqlalchemy. Похоже, мне нужно использовать alias(), но я не могу понять, как, посмотрев документацию. Буду признателен, если кто-нибудь покажет мне, как это сделать.

Большое спасибо!

4b9b3361

Ответ 1

Вам действительно нужен метод label.

result = dbsession.query(Shares.price, \
                            func.sum(Shares.quantity).label("Total sold")) \
                            .filter(Shares.company== 'Google') \
                            .group_by(Shares.price).all()