Использование 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(), но я не могу понять, как, посмотрев документацию. Буду признателен, если кто-нибудь покажет мне, как это сделать.
Большое спасибо!
Ответы
Ответ 1
Вам действительно нужен метод label
.
result = dbsession.query(Shares.price, \
func.sum(Shares.quantity).label("Total sold")) \
.filter(Shares.company== 'Google') \
.group_by(Shares.price).all()