★この記事は10分で読み終えることができます。
現役エンジニアである筆者がBigqueryで必須なSQLの基礎的な書き方について解説していきます。
Bigqueryでは、データに対してSQLというプログラミング言語で分析をしていきます。
そこで、SQL初心者でもわかりやすくSQLの書き方を丁寧に解説していこうと思います
-
【動画で勉強したい人必見】Bigqueryを学べるUdemy講座3選
本記事は5分で読み終えることができます。【記事の信頼性】京都大学出身の現役ITエンジニアである筆者は日々の業務でBigqueryを活用しています。Bigqueryを知り尽くした筆者が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のクエリです。
SELECTしてみる
SELECTとはデータを取り出すためのクエリです。
例えば下のようなテーブル「FOODS」があるとします。
魚 | 肉 |
マグロ | 牛 |
鯛 | 豚 |
イクラ | 鳥 |
この時、魚の列だけを取り出したい(肉はいらねぇって時ですね)場合はクエリエディタに
sql
SELECT "魚" FROM FOODS
と書いてあげます。
これはFOODS から(FROM) 魚を取り出す(SELECT)というクエリです。
魚 |
マグロ |
鯛 |
イクラ |
魚の列(カラムと言います)だけを取り出すことができます。
このSELECTがSQLの基礎の基礎の書き方となります!!
つまりSELECTの後に、取り出したいカラムを指定してあげればOKです!
では全部の列が欲しい時は??って思いますよね。
その時は
sql
SELECT * FROM FOODS
と「*」を使ってあげます!
実際には以下のように全部のカラムを指定してあげることがベストです。
sql
SELECT "魚", "肉" FROM FOODS
WHEREを使ってみる
name | age | sex |
Mike | 15 | 0 |
Judy | 24 | 1 |
John | 20 | 1 |
Bob | 29 | 0 |
さて、SELECTが理解できれば次はWHEREです。
WHEREは列の指定ではなく、どの行を取り出すかを指定することができます。
上記のテーブル「people」でお酒を飲める人だけを取り出したいとします。(オレンジ色の人たち)
この時に「WHERE」を使います。
お酒を飲めるのは20歳以上ですから「age >= 20」という条件をSQLで書いてあげます。
以下のように、SELECTに「WHERE age >= 20」を追加します。
sql
SELECT * FROM people WHERE age >= 20
すると、下のようなデータが取得できます。
name | age | sex |
Judy | 24 | 1 |
John | 20 | 1 |
Bob | 29 | 0 |
「name」の列だけ欲しいんや!って時は先ほどのようにSELECTで「name」を指定してあげます。
sql
SELECT name FROM people WHERE age >= 20
これで名前だけ取り出せたと思います。
SQLはとても便利なプログラミング言語ですよね。
GROUP BYしてみる
name | age | sex | country |
Mike | 15 | 0 | America |
Judy | 24 | 1 | Japan |
John | 20 | 1 | America |
Taro | 35 | 1 | Japan |
Bob | 29 | 0 | Australia |
上のようなデータがあるとしましょう
それぞれの住んでいる国(country)は何人いるかを数えたいとします
そんな時、「ある条件でまとめる処理」には「GROUP BY」を使いましょう!!
sql
SELECT country, count(country) as numFROM people GROUP BY country
上のコードの説明をするとGROUP BYでcountryをまとめます。
まとめた後にはselectの後の指定の仕方に注意が必要となってきて、まとめた処理に対してしたいことを書いてあげます。
ここではまとめた後に「count」という要素の数を数える処理を書いています。
そうすることでそれぞれの国に住んでいる人数をカウントして表示してくれます!!
country | num |
America | 2 |
Japan | 2 |
Australia | 1 |
上のようなデータが取得できると思います。
-
【動画で勉強したい人必見】Bigqueryを学べるUdemy講座3選
本記事は5分で読み終えることができます。【記事の信頼性】京都大学出身の現役ITエンジニアである筆者は日々の業務でBigqueryを活用しています。Bigqueryを知り尽くした筆者がBigqueryを ...
続きを見る
「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
次回はもう少し踏み込んだ文法・書き方について触れていこうと思います!!
-
【動画で勉強したい人必見】Bigqueryを学べるUdemy講座3選
本記事は5分で読み終えることができます。【記事の信頼性】京都大学出身の現役ITエンジニアである筆者は日々の業務でBigqueryを活用しています。Bigqueryを知り尽くした筆者がBigqueryを ...
続きを見る