0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Googleデータアナリティクス:SQLの一時テーブル

Posted at

はじめに

本記事は、Googleデータアナリティクスのプロフェッショナル認定証のプログラムより、参照させて頂いています。興味を持った方は、是非受講してみてください。

一時テーブルについて

データアナリストが SQL を使うときにも 付箋のようなものがあります。 これは一時テーブルと呼ばれるものです。 今回は、これがどんなものかを探っていきます。 一時テーブルとは、データベースサーバー上に 一時的に作成され、存在するテーブルのことです。

標準データテーブルのデータのサブセットを 一定期間保存してくれるものです。 そして、SQL データベースでセッションを 終了すると自動的に削除されます。 一時テーブルは永久に保存されないので 計算などの分析作業を行うために 短期間だけテーブルが必要な場合に便利です。

  • たとえば、同時に計算を行うテーブルが たくさんある場合などがそうです。 そのうちの 7、8 個のテーブルを 結合するクエリがある場合 行数の少ない 2、3 個のテーブルを結合し その出力を一時テーブルに 格納することができます。 そして、この一時テーブルは 他の大きなテーブルと結合できます。
  • もうひとつの例は、多くの異なる データベースにクエリを実行する場合です。 それぞれのデータベースで最初のクエリを実行し 一時テーブルを使ってすべてのクエリの結果を 収集できます。 最終的なクエリ レポートは、 この一時テーブルで実行されます。 一時テーブルがなければ、このレポート構造を 使うことはできないかもしれません。
  • また、テーブルの中に大量のレコードがあり その中のごく一部のレコードを何度も操作して 計算や分析を行う必要がある場合にも便利です。 そのため、何度もデータをフィルタリングして サブセットを返すのではなく 一度データをフィルタリングして 一時テーブルに保存できます。 そして作成したその一時テーブルを使い クエリを実行できます。

一時テーブルを使用すれば、 データをフィルタリングすることなく このデータに対していくつかのクエリを 実行できます。 SQL で一時テーブルを作成する方法は 使用しているリレーショナル データベースの 管理システムによってさまざまです。

クエリ

クエリに WITH 句を当てはめてみます。 WITH 句は一時テーブルの一種で 複数回クエリを実行できます。 一時テーブルに近いものです。 基本的に一時テーブルと同じ働きで 同じものを作成します。 作業中のデータベースにテーブルを追加せず 他の人も結果を見ることができますし 皆さんの作業を確認する必要がある人は 皆さんの結果を導いたコードも見られます。

では、このクエリを書いてみましょう。

  • このクエリは、WITH コマンドで始まります。一時テーブルの名前を trips_over_1_hr とします。
  • 次に、AS コマンドと開き括弧を入力します。
  • 新しい行では、SELECT FROM WHERE 構造の サブクエリを使用します。
  • 次に FROM コマンドを入力し、 取得するデータベースの名前 bigquery-public-data. new_york.citibike_trips を入力します。
  • 次に、WHERE 句で、一時テーブルで必要な 自転車走行の長さが 60 分以上であることを 条件として追加します。
  • 最後に、新しい行に閉じ括弧を追加して サブクエリを終了します。

これで、一時テーブルができあがり、 60 分以上の旅行の結果だけを返す クエリを実行できるようになりました。 早速試してみましょう。

このクエリを実行すると、 データセットから 60 分以上の 自転車走行の総数が表示されます。

60 分以上の自転車走行を分析する限り この一時テーブルに対して 何度もクエリを実行できます。 またセッションを終了し、後で新しい処理を 開始する必要がある場合、ほとんどのサーバーは 一時テーブルに使用したコードを保存しています。 コードを実行してテーブルを再作成するだけです。

一時テーブルを使用すると 作業を効率化することができます。 一時テーブルに名前を付けて使えば たくさんのデータをより合理的に処理でき 同じクエリを何度も繰り返すことなく 一時テーブルにそのコードを含めるだけで 済みます。
さらに、一時テーブルを使うことで 他のチームメンバーの役に立つ側面もあります。 一時テーブルは コードの複雑さを軽減でき、 読みやすく、理解しやすくなり、 チームメンバーも喜ぶでしょう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?