ALL ARTICLES FILED IN

Tech Blog

[SQL]マーケターのためのSQL入門1 ー SQLの基本

Posted by デジマール技術部 on 2018/09/08
デジマール技術部

近年、データドリブンマーケティングやビッグデータ解析などの言葉に代表されるように、これまで以上にデータを積極的に利用する動きが高まっています。これには大きく二つの要因があると言われています。一つめは、インターネット上の様々なサービスからたくさんのデータが入手できるようになったこと。そしてもう一つは、その収集したデータを処理するためのプラットフォームを手軽に導入できる環境が整ってきたことです。

今まではデータを有効に活用したいと思ってもそのインフラ環境を構築・運用するコストがネックになっていました。ある程度の処理を見越したハードウェアを準備する必要もありました。しかし現在は本来のデータ解析に集中できるようにインフラ環境はクラウドに用意して使った分だけ支払う従量課金モデルが一般的になり、手軽に開始することができます。

SQLはデータ解析を行うためのプログラミング言語になります。データ解析に使える言語やツールは他にもありますが、もっともよく使われているものと言っていいでしょう。SQLはデータ解析以外にもデータベース全般の処理に使用されるツールですが、この記事ではデータ解析に絞って進めていきます。

なお、この記事ではデータベース管理システムはPostgreSQL、SQLを発行するためのフロントエンド環境にRedashを使います。データベースはPostgreSQL Tutorialサイトに公開されているDVDレンタルデータベースをサンプルにします。

PostgreSQL Tutorial
http://www.postgresqltutorial.com/

Redashの環境構築について興味のある人は、過去の記事を参照ください。

データ解析に先立ってまず必要なことは、どんなデータを持っているのか、そのデータがどのような構造になっているのか、どんなデータが最終的に欲しいのか、を明確にすることです。あるデータが欲しいと思っても、入力ソースとなるデータから導き出されるものでなければ結果は得られません。まずは手元にあるデータをよく理解し、足りないものがあれば入手してゴールを設定します。

今回のサンプルデータにはERダイアグラムが公開されていますので、これを元にデータを解析していきます。データソースにPostgreSQLを追加してRedashのクエリ画面を表示すると以下のようになります。左側に表示されているのはDVDレンタルデータベース内のテーブル一覧です。テーブル名をクリックするとカラムが展開されます。

では、その中のfilmテーブルを見てみましょう。各カラムは以下の通りです。

クエリ入力欄に以下のSQLを打ち込みます。

SELECT * FROM film;

このSQLはfilmテーブルから全ての項目(*)を引っ張ってくるという意味です。なお、今の段階ではあまり意識しませんが、特にBigQueryなどのサービスを使う場合、コンピュータリソースを過度に使用するとコストが上がってしまうので、*は極力使用せずに必要な項目だけを取得するようにしましょう。

では、*をやめてtitle、description、release_yearだけを指定してみましょう。

SELECT title, description, release_year FROM film;

指定した項目だけが取得できました。
では、次にこのテーブルのデータ件数を取得してみましょう。以下のSQLを使います。


SELECT COUNT(*) FROM film;

では、最後に条件を指定してデータを取得してみましょう。rental_rateが4以上のデータを対象にします。条件を指定する場合は、WHERE句を使います。


SELECT
title, description, release_year, rental_rate
FROM film
WHERE rental_rate > 4;

上記のようにSQLは複数行に分けて記述しても問題ありません。条件が複雑になってくるとわかりにくくなりますので、改行を入れたほうが良いでしょう。また、SQLは英大文字で記述しましたが、小文字でも同じように動作します。このSQLを実行すると、以下の結果が得られます。

今回は第一回目としてごく簡単なSQLの使い方についてご説明しました。今後、より複雑な使い方について乗せていく予定です。

 

次回の記事: [SQL]マーケターのためのSQL入門2 ー 複数テーブルからデータを取得する

 

———-
弊社では、マーケターがRedashをフロントに置いたデータ解析環境を構築するお手伝いもしております。
またRedashだけでなく、社内データの利活用やデジタルマーケティング全般に関するご相談も、お気軽に以下よりお問い合わせください。

お問い合わせはこちら

Topics: Redash, マーケター, 技術情報, sql