전체 여성 비율 계산하기
하나의 select 문 안에서 함수와 연산자를 함께 사용할 수도 있습니다.
이러한 조합은 백분율이나 평균을 계산할 때 매우 유용하며,
case() 표현식을 사용하면 특정 조건을 만족하는 데이터에만 연산을 적용하면서 전체 쿼리에는 영향을 주지 않을 수 있습니다.
case() 표현식은 일치시킬 조건들의 목록과, 조건이 일치할 경우 반환할 열을 받고,
어느 조건도 일치하지 않을 때 사용할 else_를 이어서 받습니다. 이 전체 표현식은 원하는 어떤 함수나 수학 연산으로 감쌀 수 있습니다.
정수 나눗셈을 할 때는 종종 결과를 부동 소수점으로 받고 싶을 때가 있습니다. 일부 데이터베이스는 이를 자동으로 처리하지만,
cast() 함수를 사용해 표현식을 특정 타입으로 변환할 수 있습니다.
이 연습은 강의의 일부입니다
Python으로 배우는 데이터베이스 입문
연습 안내
sqlalchemy에서case,cast, 그리고Float를 가져오세요.- 2000년의 여성 인구를 계산하기 위한 표현식
female_pop2000을 만드세요. 다음을 따르세요:func.sum()안에case()를 사용합니다.case()의 첫 번째 인수는 다음을 포함한 튜플의 리스트입니다.- i)
census.columns.sex가'F'와 같은지 확인하는 불리언. - ii) 열
census.columns.pop2000.
- i)
- 두 번째 인수는
else_조건이며, 0으로 설정해야 합니다.
- 2000년의 전체 인구를 계산하고
cast()로Float로 변환하세요. - 2000년 여성 비율을 계산하는 쿼리를 만드세요. 이를 위해
female_pop2000을total_pop2000으로 나눈 뒤100을 곱하세요. - 쿼리를 실행하고
percent_female을 출력하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# import case, cast and Float from sqlalchemy
from sqlalchemy import ____, ____, ____
# Build an expression to calculate female population in 2000
female_pop2000 = func.sum(
____([
(____ == ____, ____)
], else_=____))
# Cast an expression to calculate total population in 2000 to Float
total_pop2000 = cast(func.sum(____), ____)
# Build a query to calculate the percentage of women in 2000: stmt
stmt = select([____ / ____* 100])
# Execute the query and store the scalar result: percent_female
percent_female = connection.execute(____).scalar()
# Print the percentage
print(____)