3章−2

(1) 次のファイルを03_2.datという名前で作成しなさい。(項目の区切りはタブ)

山田	1992-04-01	35	8315	6402
吉田	1995-04-01	209	6681	3686
田中	2002-04-01	5	3503	1528
鈴木	1988-04-01	85	11043	5802
佐藤	2005-04-01	198	1563	627
斎藤	2007-04-01	103	1002	489
村山	1988-04-01	18	10040	5593
中村	2002-04-01	8	3408	1411
前田	1997-04-01	55	6093	3978
高木	1991-04-01	132	7780	5620
坂本	1997-04-01	2	5900	3024
松井	2002-04-01	107	3483	2084


(2) 実行結果を参考に次のようなSQLを作成しなさい。
・テーブルt03_2を作成する。
・\copyでt03_2テーブルに03_2.datを取り込む。
・hiredate列は入社日でdate型とする。
・numは入社年毎の連番の数字である。
・ngは失敗、okは成功の回数である。

odexer=> \i 03_2_2.sql
CREATE TABLE

odexer=> select * from t03_2;
 name |  hiredate  | num |  ng   |  ok
------+------------+-----+-------+------
 山田 | 1992-04-01 |  35 |  8315 | 6402
 吉田 | 1995-04-01 | 209 |  6681 | 3686
 田中 | 2002-04-01 |   5 |  3503 | 1528
 鈴木 | 1988-04-01 |  85 | 11043 | 5802
 佐藤 | 2005-04-01 | 198 |  1563 |  627
 斎藤 | 2007-04-01 | 103 |  1002 |  489
 村山 | 1988-04-01 |  18 | 10040 | 5593
 中村 | 2002-04-01 |   8 |  3408 | 1411
 前田 | 1997-04-01 |  55 |  6093 | 3978
 高木 | 1991-04-01 | 132 |  7780 | 5620
 坂本 | 1997-04-01 |   2 |  5900 | 3024
 松井 | 2002-04-01 | 107 |  3483 | 2084
(12 rows)


(3) 実行結果を参考に次のようなSQLを作成しなさい。
・識別番号はhiredate列の年4桁とnum列4桁をハイフン(-)で連結する。
・失敗、成功の回数はそれぞれng列、ok列をカンマ(,)で区切る。
・成功率はok列をng列とok列の和で割った値の、小数点4桁までとする。

odexer=> \i 03_2_3.sql
 識別番号  | 名前 | 失敗回数 | 成功回数 | 成功率
-----------+------+----------+----------+---------
 1992-0035 | 山田 |    8,315 |    6,402 |  0.4350
 1995-0209 | 吉田 |    6,681 |    3,686 |  0.3556
 2002-0005 | 田中 |    3,503 |    1,528 |  0.3037
 1988-0085 | 鈴木 |   11,043 |    5,802 |  0.3444
 2005-0198 | 佐藤 |    1,563 |      627 |  0.2863
 2007-0103 | 斎藤 |    1,002 |      489 |  0.3280
 1988-0018 | 村山 |   10,040 |    5,593 |  0.3578
 2002-0008 | 中村 |    3,408 |    1,411 |  0.2928
 1997-0055 | 前田 |    6,093 |    3,978 |  0.3950
 1991-0132 | 高木 |    7,780 |    5,620 |  0.4194
 1997-0002 | 坂本 |    5,900 |    3,024 |  0.3389
 2002-0107 | 松井 |    3,483 |    2,084 |  0.3743
(12 rows)