この記事は「データベーススペシャリスト資格に興味はあるが、どのようなものか?どう学ぶのか?」という方向けに、具体的な内容と私自身の挑戦ログをお伝えする。学び中の方や、これから学ぼうとされる方の参考になれば幸いだ。今回は知識およびSQL(確認ドリル)について書く。(SQLはGoogle Big Queryに準拠)
また、考察においてキャリアコンサルタント資格の挑戦ログについても記述する。
DB学習方針(一部再掲)
対策MUSTのもの
- 午前2対策、TAC講義動画全て視聴⇒完了⇒過去ブログ記事も参考に、知識ざっと見直し(試験1週間前まで1日少しづつ)⇒完了。キーワード”DB基礎知識”で過去記事を検索し、すべての見直しと「問題なし(学習済)」の評価結果を記事内に追記完了。
- 午前2対策、TACテキストの問題全て完答⇒3ラリー目完了。ざっと見直し。このとき、過去試験(システムアーキテクト等)も参考に心構えは整理しておく(試験1週間前まで1日少しづつ、1週間前、直前)⇒4ラリー目完了。心構えは「本試験の注意点」として記事内整理。⇒5ラリー目と心構えは直前期ざっと見直し対象
- 午前2対策、過去5年分の過去問ベースで完答⇒1ラリー目完了。ざっと見直し(1週間前、直前)⇒2ラリー目完了。⇒3ラリー目は直前期ざっと見直し対象
- 午後対策、TAC講義動画全て視聴⇒完了⇒過去ブログ記事も参考に、知識ざっと見直し(試験1週間前まで1日少しづつ)⇒完了。午後のTAC講義は過去問ベースの解説であった。講義のアドバイスもふまえ、自分で繰り返し3回以上解くことで体得済。
- 午後1対策、”物理+SQL”問題につき、解き方を把握しておく⇒1ラリー目完了。ざっと見直し。このとき、過去試験(システムアーキテクト等)も参考に心構えは整理しておく(試験1週間前まで、1週間前、直前)⇒完了。⇒直前期は1日1問づつ「問題の回答プロセス」を見直し復習。コツに追記あればまとめる。
- 午後1・午後2対策、論理設計問題につき、時間内に答えを埋める訓練⇒約7つの過去問につき2ラリー目まで完了。1日1回の実技演習として3ラリー目実施中(試験1週間前まで、1週間前、直前)⇒完了⇒直前期は、論理設計のコツを見直し、1日1問はアウトプットトレーニングを続ける。
- 全般対策、TAC実力テストおよび公開模試の提出⇒提出済、返却待ち(実力テストは返却あり)⇒午前2は実力テスト・模試の確認済。⇒あとは午後問題につき見直し
- 全般対策、初見問題のアウトプット練習(R3 PM2、R3 PM1 問1,2、R3 PM2論理およびSQL練習問題としてH28問3,H29問3,R2問3)⇒試験1週間前まで、1週間前⇒試験前週に、1日1問づつくらいのアウトプットトレーニングをして最後の仕上げ
対策BETTERのもの
- 午前2対策、三好先生の本ベースでも問題を解いておくことで、より幅広く対応(対象はSQLのみ)⇒完了
- 午後対策、過去問パターンや業務基本パターン(三好先生テキスト)の記憶⇒完了(上記と並行)
今後の大まかな計画
- キャリコンについて、基礎理論部分を完了させる(10/1応用実習までの課題提出があるため)⇒完了
- 一通りの練習は最低1ラリー完了しており、最後の総まとめフェーズとなる。
- 今まで解いたことの振り返り(INPUT)をしつつ、コツに追記して(OUTPUT)、初見問題の練習や公開模試振り返り(OUTPUT)するのが効果的だろう。
- 本日より、1日1問論理設計の実技(4ラリー目)、1日1問物理+SQL復習の見直し(2ラリー目)、午前2 約20~25問づつ見直し(5ラリー目)実施。(約7-8で完了するが、家族旅行や体調不良などの予備を考慮)
- まとまった時間が取れるとき、模試復習(動画)、初見問題(R3一通りなど)を実践的に回答。
- そのうえで、コツは随時まとめ(こちら)に追記していく。
- なお、DB本試験の前日にキャリコンの講習があるが、これは止む無し。そのぶん本試験1週間前の平日はかなり集中し、DB本試験の準備に集中したい)
問題138(SQL確認ドリル)
問題文
- web_logテーブルから、曜日ごとのページビュー数を求めてください。
- 結果テーブルは、曜日とページビュー数の2カラムとします。
- 並び替えは、日曜日から土曜日の順にして表示してください。
回答プロセス
- まず、曜日ごとのページビュー数ということで、group byで曜日を指定し、countでデータ数を数えれば良い。
- なお、曜日についてはdate_timeの値を、fomat_datetime関数で「曜日」に切り替えて求める。
- 最後に問題になるのが、曜日の並び替え。
- 曜日は数字ではないので、order byで指定しても綺麗に並び替えできない。
- そこで、fomat_datetime関数で”%u”を指定する。これは1週間のうち何日目かを数字で表すもの。たとえば日曜日なら7、月曜日なら1、火曜日なら2という具合である。
- ただし、order byでこれを指定する際に注意点がある。まず、group byと組み合わせて使うので、order byにおいても集計関数(今回はmax)で括ること。
- また、日曜日から表示したいので、「”週のうち何日目か”を7で割った余り」で指定すること。更に、format_datetimeは見た目を数字に変えているだけなので、計算ができるようにcast関数でINT64型に変換すること。
- 具体的には以下のとおり。
考察
- データベーススペシャリスト資格について。総まとめ計画に基づき、午後の論理設計中心に学習内容の振り返りとコツの整理を実施した。また、SQLの確認ドリル(web_logテーブルから、曜日ごとのページビュー数を、日曜日から表示)を解いた。
- キャリアコンサルタント資格について、学びの振り返りを行っている。学習前は「仕事中心のキャリア形成および支援」が目的であった。しかし学習後は「仕事だけでなく、学びや育児・介護など多様な役割も踏まえた、人生全体の構築」がテーマだと気づき、学びを深める意欲が高まっている次第だ。
考察のシンプル化と英訳(練習中)
- I find it interesting that the career consultant’s theme is to build a whole life.
- (キャリアコンサルタントのテーマが、人生全体の構築であることは興味深い)
参考資料
- 集中演習 SQL入門/木田和廣/株式会社インプレス
- 2022年度版 ALL IN ONE パーフェクトマスター データベーススペシャリスト/TAC
コメント