データベーススペシャリスト資格|2022年10月挑戦ログ 5月28日|SQLによる仮想テーブル利用(確認ドリル)

高度IT・基礎知識

この記事は「データベーススペシャリスト資格に興味はあるが、どのようなものか?どう学ぶのか?」という方向けに、具体的な内容と私自身の挑戦ログをお伝えする。学び中の方や、これから学ぼうとされる方の参考になれば幸いだ。

今回はSQLにおける仮想テーブル利用(確認ドリル)について書く。

※注意点として、SQLはDBMSによって作法が異なる。この記事はGoogle Big Queryに準拠するものであることをお含みおき願いたい。

確認ドリル018

前回振り返り

  • 「仮想テーブル」を扱う操作について「with句」「ビュー」「サブクエリ」を一通り学習できた。
  • 今回も仮想テーブルの操作をまとめて復習するため、確認ドリルを解く。

問題

  • [web_log]テーブルから
  • セッションの総数(session)と
  • ページビュー数の合計(sum_pageviews)を取得してください。
  • セッションは、ユニークな[cid]と[session_count]の組み合わせと定義します。
  • ページビューは、1レコードが1ページビューを表しています。
  • 結果フィールドは、2フィールド1レコードになります。

SQL実践(テーブルの確認)

  • まず、「[web_log]テーブルから」とあるのでこれを確認。
  • 以下のとおり[cid],[session_count]等を持つテーブルであることが分かった。

SQLの実践(複数列のgroup by)

  • 次に、「セッションの総数」について「セッションは、ユニークな[cid]と[session_count]の組み合わせと定義」とされている。
  • group byは2つ以上の列で束ねることもできるので、この機能を利用する。
  • 以下のように定義すれば「ユニークな[cid]と[session_count]の組み合わせ」が抽出できる。

SQLの実践(with句、サブクエリ)

  • さて、上記のテーブルをwith句で仮想テーブルに一旦保管しておき(以下、赤枠)、セッションの数をcountで求めれば、セッションの総数(session)が求められる。抽出結果はサブクエリとして引き込めるようにする(以下、緑枠)。
  • いっぽう、ページビュー数の合計(sum_pageviews)については、「ページビューは、1レコードが1ページビューを表しています」とのことなので、単純に元テーブルのレコード数をカウントすればよい。(以下、青枠)

考察

  • SQLについて。「仮想テーブル」を扱う操作に関して「with句」「ビュー」「サブクエリ」を一通り学習できた。今回は復習のため確認ドリルを解いた。(group byで複数列を集計し、with句で仮想テーブルにし、編集結果をサブクエリで取得)
  • 考察。あらためて日々の挑戦をブログ記事にして良かったと思える。自分にとっては知識の定着と保管になるし、同じように学んでいる方の役に立つかもしれないからだ。そして何よりアウトプットとフィードバックの循環が、自分の好奇心と視野を広げてくれるのが嬉しい。

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

  • I feel writing daily challenges on my blog good. because the loop of output and feedback makes my curiosity and field of view wide.
  • (私は自分のブログで毎日の挑戦を書くのが良いと感じています。出力とフィードバックのループが私の好奇心と視野を広くしているからです)

参考書籍

  • 集中演習 SQL入門/木田和廣/株式会社インプレス

コメント

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