SQLAlchemy ORM 모델로 디비를 사용하던 중, 특정 컬럼 값의 총합(SUM)이 필요했다.
from sqlalchemy.sql import func
count = db.session.query(db.func.sum(Books.stock)).first()[0]
Model.query는 db.session.query(Model)의 바로 가기이며 호출 할 수 없습니다. 모델을 쿼리하지 않는 경우 일반 SQLAlchemy와 마찬가지로 db.session.query(...)를 계속 사용하십시오.
참고답변
쿼리 실행 시, 리턴 값은 'basequery object'라는 객체인 것 같다. (Decimal('33'),) 아래와 같이 리턴됨.
내가 원하는건 '33'이라는 값이기에,
db.session.query(db.func.sum(Books.stock)).first()
이 아닌, 아래와 같이 인덱스로 접근해 주어야 한다.
db.session.query(db.func.sum(Books.stock)).first()[0]