Python으로 배우는 데이터베이스 입문
Jason Myers
Co-Author of Essential SQLAlchemy and Software Engineer
COUNT, SUMfrom sqlalchemy import funcfrom sqlalchemy import funcstmt = select([func.sum(census.columns.pop2008)])results = connection.execute(stmt).scalar()print(results)
302876613
stmt = select([census.columns.sex, func.sum(census.columns.pop2008)])stmt = stmt.group_by(census.columns.sex)results = connection.execute(stmt).fetchall()print(results)
[('F', 153959198), ('M', 148917415)]
order_by()와 유사한 방식으로 여러 열을 그룹화합니다stmt = select([census.columns.sex, census.columns.age, func.sum(census.columns.pop2008) ])stmt = stmt.group_by(census.columns.sex, census.columns.age)results = connection.execute(stmt).fetchall() print(results)
[('F', 0, 2105442), ('F', 1, 2087705), ('F', 2, 2037280),
('F', 3, 2012742), ('F', 4, 2014825), ('F', 5, 1991082),
('F', 6, 1977923), ('F', 7, 2005470), ('F', 8, 1925725), ...
ResultSet의 함수에 대해 자동으로 "열 이름"을 생성합니다count_1 같은 func_#인 경우가 많습니다label() 메서드로 바꿉니다print(results[0].keys())
['sex', u'sum_1']
stmt = select([census.columns.sex, func.sum(census.columns.pop2008).label('pop2008_sum') ])stmt = stmt.group_by(census.columns.sex)results = connection.execute(stmt).fetchall() print(results[0].keys())
['sex', 'pop2008_sum']
Python으로 배우는 데이터베이스 입문