Body Count で用いたファイルについて、 employees in California により発行された Small Business loans のお金が一番多いのはどの city かと、その額を要求された。
これは、以下の手順で求めることができそうである。
employee_id
と city
の対応表を抽出する。loan_type_id
が 3
(これは loan_types
のデータより 'Small Business'
に対応する) のものを抽出し、
その employee_id
に対応する city
の合計に加える。city
ごとの額の合計を額の降順でソートし、出力する。
まず、「in California」かどうかの判定方法を推測する。
employees のデータから California
を検索したが、見つからなかった。
そこで、「California」でググると、略称が US-CA
であるアメリカの州を表すようだった。
これを踏まえ、state
が 'CA'
である employee の employee_id
と city
の対応表を抽出する以下のプログラムを作成した。
このプログラムの入力は、employees のデータ (demonne.sql
の164行目) とする。
Regarding the file used in Body Count, we were asked to determine which city has the largest amount of money in "Small Business loans" that are issued by "employees in California" and the amount.
This can be achieved in this way:
employee_id
and city
of employees that satisfy the condition "in California".loan_type_id
is 3
, which corresponds to 'Small Business'
in the loan_types
data,
and add the amount of money in the entry to the city
corresponding to the employee_id
of this entry.city
with sorted in decending order of the amount.
Firstly, I guessed how to judge if an employee is "in California".
I searched for California
from the data of employees, finding nothing.
Then I googled "California" and found that it looks standing for a state in the United States, whose code is US-CA
.
Based on this, I created this program to extract a conversion table between employee_id
and city
for employees whose state
is 'CA'
.
This program takes the data of employees (the 164th line of demonne.sql
) as an input.
さらに、loans のデータのうち、loan_type_id
が 3
であり、かつ employee_id
が対応表にあるものの balance
の値を、
employee_id
に対応する city
ごとに合計し、合計の降順で出力する以下のプログラムを作成した。
このプログラムは、loans のデータ (demonne.sql
の224行目) を標準入力から、対応表をコマンドライン引数で指定したファイルから読み込む。
また、この問題の問題文と、自分が解いた後に修正された El Paso の問題文に共通して outstanding という表現が使われていたことから、
この問題でも El Paso と同じ balance
の値を使うと良いと推測した。
Then, I created this program to calculate the sum of values of balance
of entries in the data of loans
whose loan_type_id
is 3
and employee_id
is in the conversion table.
These values are added for each city
corresponding to the employee_id
and printed in decending order of the sum.
This program reads the data of loans (the 224th line of demonne.sql
) from the standard input and the conversion table from the file specified in the command line arguments.
I guessed that I should use the value of balance
for this challenge like I did in El Paso
because both of the challenge description of this challenge and El Paso (modified after I solved that) had an expression "outstanding".
その結果、一番 balance
の値の合計が多いのは Oakland
であり、その合計は 90600.00
であった。
これを指定されたflagの形式に当てはめることで、flagが得られた。
As a result, it revealed that Oakland
has the largest sum of values of balance
, and that the sum is 90600.00
.
I obtained the flag by putting these results to the specified format.