1. 学ぶ
  2. /
  3. コース
  4. /
  5. Pythonで学ぶデータベース入門

Connected

演習

女性の全体割合を求める

単一の SELECT ステートメント内で、関数や演算子を組み合わせることも可能です。 この組み合わせは、割合や平均を計算したいときに非常に便利です。また、case() 式を使えば、特定の条件を満たすデータに対してのみ処理を行い、クエリ全体には影響を与えないようにできます。 case() 式は、一致させたい条件のリストと、その条件が一致した場合に返す列を受け取り、どの条件にも一致しなかった場合の else_ を続けます。この式全体は、任意の関数や数式で包むことができます。

整数同士の除算を行うとき、結果を小数で受け取りたい場面はよくあります。データベースによっては自動で行われますが、cast() 関数を使って、式を特定の型に変換できます。

指示

100 XP
  • sqlalchemy から case、cast、Float をインポートします。
  • 2000 年の女性人口を計算する式 female_pop2000 を作成します。次のように進めます。
    • func.sum() の中で case() を使います。
    • case() の第 1 引数は、次のタプルを含むリストにします。
      • i) census.columns.sex が 'F' に等しいかを確認するブール式。
      • ii) 列 census.columns.pop2000。
    • 第 2 引数は else_ 条件で、0 に設定します。
  • 2000 年の総人口を計算し、cast() を使って Float に変換します。
  • 2000 年の女性の割合を計算するクエリを作成します。female_pop2000 を total_pop2000 で割り、100 を掛けます。
  • クエリを実行し、percent_female を出力します。