시작하기무료로 시작하기

전체 여성 비율 계산하기

하나의 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.
    • 두 번째 인수는 else_ 조건이며, 0으로 설정해야 합니다.
  • 2000년의 전체 인구를 계산하고 cast()Float로 변환하세요.
  • 2000년 여성 비율을 계산하는 쿼리를 만드세요. 이를 위해 female_pop2000total_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(____)
코드 편집 및 실행