Bigquery

Bigqueryで必要なSQLの基礎を現役エンジニアが解説(SELECT, WHEREなど)

のんたん

nontan

京大工学部▶︎京大大学院情報学研究科▶︎日系企業のITエンジニア。研究室ではAI×通信の研究も行いAIにも知見あり。友人とプログラミング初学者向けブログ「はやぶさエンジニア」を運営。近日、Webサービスのリリース予定。26歳大阪在住

★この記事は10分で読み終えることができます。

現役エンジニアである筆者がBigqueryで必須なSQLの基礎的な書き方について解説していきます。

Bigqueryでは、データに対してSQLというプログラミング言語で分析をしていきます。

そこで、SQL初心者でもわかりやすくSQLの書き方を丁寧に解説していこうと思います

Bigqueryとは

Bigquery

BigQuery とは Google Cloud Platform(GCP) の中の1つのサービスで、ビッグデータ解析サービスです。

データ保存としてデータウェアハウスとしても利用されます。

そもそも「GCPとは、GoogleがYoutubeや検索エンジン、Mapなどのサービスを構築している基盤をユーザ・クライアントに向けて使えるようにしたクラウドサービス」です。

Googleの超エリートエンジニアたちが使っている社内基盤を利用できる素晴らしいサービスですね。

SQLを知っていればBigqueryは利用できるのでこの記事を通じてSQLの基礎を理解してくださいね。

Bigqueryで必要なSQLの基礎

Bigqueryの画面操作

まず、Bigqueryの画面操作の説明をします。

上の画像が「Bigquery」の画面ですが、左下に自分の扱いたいデータが表示され、クエリエディタにSQLを書いてデータ分析をしていきます。

SQLの基礎を理解してBigqueryを使えるようになりましょう!

SQLの基礎知識

SQL

SQLとは「データベースに対しての命令言語」です。

SQLの具体的な「データベースに対する命令」は一般的に「クエリ」か「SQL文」という表現しますので、これから実際に解説するのはSQLのクエリです。

BigQuery で学ぶ非エンジニアのための SQL データ分析入門

受講はこちら

SELECTしてみる

SELECTとはデータを取り出すためのクエリです。

例えば下のようなテーブル「FOODS」があるとします。

マグロ
イクラ
テーブル「FOODS」

この時、魚の列だけを取り出したい(肉はいらねぇって時ですね)場合はクエリエディタに

 sql
SELECT "魚" FROM FOODS

と書いてあげます。

これはFOODS から(FROM) 魚を取り出す(SELECT)というクエリです。

マグロ
イクラ
テーブル「FOODS」

魚の列(カラムと言います)だけを取り出すことができます。

このSELECTがSQLの基礎の基礎の書き方となります!!

つまりSELECTの後に、取り出したいカラムを指定してあげればOKです

では全部の列が欲しい時は??って思いますよね。

その時は

 sql
SELECT * FROM FOODS

と「*」を使ってあげます!

実際には以下のように全部のカラムを指定してあげることがベストです。

 sql
SELECT "魚", "肉" FROM FOODS

WHEREを使ってみる

nameagesex
Mike150
Judy241
John201
Bob290
テーブル「people」

さて、SELECTが理解できれば次はWHEREです。

WHEREは列の指定ではなく、どの行を取り出すかを指定することができます。

上記のテーブル「people」でお酒を飲める人だけを取り出したいとします。(オレンジ色の人たち)

この時に「WHERE」を使います。

お酒を飲めるのは20歳以上ですから「age >= 20」という条件をSQLで書いてあげます。

以下のように、SELECTに「WHERE age >= 20」を追加します。

 sql
SELECT * FROM people WHERE age >= 20

すると、下のようなデータが取得できます。

nameagesex
Judy241
John201
Bob290
データ「people」

「name」の列だけ欲しいんや!って時は先ほどのようにSELECTで「name」を指定してあげます。

 sql
SELECT name FROM people WHERE age >= 20

これで名前だけ取り出せたと思います。

SQLはとても便利なプログラミング言語ですよね。

GROUP BYしてみる

nameagesexcountry
Mike150America
Judy241Japan
John201America
Taro351Japan
Bob290Australia
データ「people」

上のようなデータがあるとしましょう

それぞれの住んでいる国(country)は何人いるかを数えたいとします

そんな時、「ある条件でまとめる処理」には「GROUP BY」を使いましょう!!

 sql
SELECT country, count(country) as numFROM people GROUP BY country

上のコードの説明をするとGROUP BYでcountryをまとめます。

まとめた後にはselectの後の指定の仕方に注意が必要となってきて、まとめた処理に対してしたいことを書いてあげます。

ここではまとめた後に「count」という要素の数を数える処理を書いています。

そうすることでそれぞれの国に住んでいる人数をカウントして表示してくれます!!

countrynum
America2
Japan2
Australia1
データ「GROUP BYの処理後」

上のようなデータが取得できると思います。

SQL初学者におすすめのUdemy講座です!!

【はじめてのSQL ・データ分析入門 -データベースのデータを
ビジネスパーソンが現場で活用するためのSQL初心者向コース】

受講はこちら

「GROUP BY」のあとは「HAVING」で絞り込む

GROUP BYでまとめたはいいけど、それで??ってなると思います。

まとめた後は、何か条件でソートしますよね!?

やり方はをみていきましょう!!

先ほどの上記で書いたコードにHAVINGを付け加えてみます

 sql
SELECT country, count(country) as numFROM people GROUP BY countryHAVING num = 1

まとめてSELECTした結果に対してHAVINGで条件「一人だけ住んでいる国」を付け加えました!

この例でもわかるようにGROUP BYした後にSELECTしたデータに対してHAVINGは条件をかけることができます。

GROUP BYする前に条件を指定したい場合はWHEREを使用しましょう!!

まとめ

今回の記事ではBigqueryを使うためにSQL初心者が知るべき基礎を解説しました。

・SELECT
・WHERE
・GROUP BY
・HAVING

次回はもう少し踏み込んだ文法・書き方について触れていこうと思います!!

  • この記事を書いた人
のんたん

nontan

京大工学部▶︎京大大学院情報学研究科▶︎日系企業のITエンジニア。研究室ではAI×通信の研究も行いAIにも知見あり。友人とプログラミング初学者向けブログ「はやぶさエンジニア」を運営。近日、Webサービスのリリース予定。26歳大阪在住

-Bigquery
-, , , ,

© 2021 はやぶさエンジニア Powered by AFFINGER5