データベーススペシャリスト資格|2022年10月挑戦ログ 7月11日|SQL(確認ドリル)

高度IT・基礎知識

この記事は「データベーススペシャリスト資格に興味はあるが、どのようなものか?どう学ぶのか?」という方向けに、具体的な内容と私自身の挑戦ログをお伝えする。学び中の方や、これから学ぼうとされる方の参考になれば幸いだ。今回はSQL(確認ドリル)について書く。(SQLはGoogle Big Queryに準拠)

問題062(SQL確認ドリル)

問題文

  • 「web_log」テーブルの「page」カラムに格納されている
  • 「/prod/prod_id_[数字]/」の[数字]部分は、商品ID(product_id)を示しています。
  • 「page」から「数字」だけを抜き出し、「product_id」カラムとして取得してください。
  • 結果テーブルは「page」と「product_id」の2カラムとし、
  • 「date_time」の小さい順に並べて、5レコードに絞り込んで表示します。

instr,substrのおさらい

  • instrは特定の文字列の出現位置を取得できる。
  • 今回は”prod_id”をふくむ「page」カラムを特定する。(赤枠)
  • substrは引数で指定した開始位置から、おなじく引数で指定した文字数分を取得できる。
  • 今回は抜き出したい[数字]の直前に2つめの”_”が来るので、これを開始位置とした。(青枠)
  • また、抜き出したい[数字]の直後に3つめの”/”が来るので、ここまでを取得範囲とした。(緑枠)
  • 具体的には以下のとおり。

正規表現を用いた別解

  • 正規表現とextractを用いたほうがスマートに回答できる。
  • 具体的には「REGEXP_EXTRACT(page, r”^/prod/prod_id_(\d\d?)/”)」と記述。
  • ポイントは”?”であり、これは任意の数字が”あるかもしれない”を示すもの。
  • それ以外の記号、”^”(始まり)、”()”(抽出箇所)、”\d”(任意の数字)などは汎用的なもの。

考察

  • データベーススペシャリスト資格について。今回はSQLの確認ドリルを解いた。お題は「web_logテーブル内のpageカラムにおいて、”/prod/prod_id_[数字]/”という記載がある場合、[数字]部分を抽出する」だ。instr,substrを用いて記述した。
  • 考察。私の妻は放送大学で学び直し中なのだが、今日「心理学統計法」の演習問題について相談を受けた。お題は分散、偏相関係数、t値、F値の計算などだ。「夫婦で同じ問題を一緒に解ける」という経験はとても楽しいものであり、学び直しの醍醐味と言えそうだ。

考察のシンプル化と英訳(練習中)

  • I feel relearning with couple is precious experience.
  • (夫婦での再学習は、貴重な経験だと思います)

参考資料

  • 集中演習 SQL入門/木田和廣/株式会社インプレス
  • 心理学統計法/清水 裕士/一般財団法人 放送大学教育振興会

コメント

タイトルとURLをコピーしました