Googleスプレッドシートでは
簡易なデータを取り込んで
SQLを使うことができるようになっています。

今回はそのやり方をご紹介します。

解説動画はこちら




データの取り込み

さてまずはデータを取り込みしてみましょう。

外部からデータを取り込む関数があります。
これでデータを取り込んでみましょう。

スプレッドシートを立ち上げて
シートのA1にこのコードを貼り付けて
実行してみましょう。

=IMPORTDATA("https://gist.githubusercontent.com/michhar/2dfd2de0d4f8727f873422c5d959fff5/raw/fa71405126017e6a37bea592440b4bee94bf7b9e/titanic.csv")
スクリーンショット 2020-10-31 17.26.19

IMPORTDATA("外部データのURL")
で外部データを取り込みできます。


あまり大きなデータは取り込めずに
エラーになってしまうようです。
目安は16000行ほどです。

小さなデータであれば
大丈夫でしょう。





QUERYの実行方法

データが取り込めたら
次はSQLを使う関数です。
QUERY関数でSQLを実行できます。

QUERY(<データ範囲>, "クエリ")

第一引数にデータ範囲を指定します。

クエリの対象データの範囲は
シートの位置を指定します。

今回取り込んだデータが
A:L列まで、892行目までのデータでした。

指定としては A1:L892
で全部を範囲指定できます。

SQLのSELECT文で言う
FROM句に該当します。

第二引数にクエリを書いていきます。


SELECT句

第二引数として指定する
クエリの部分です。

SELECT句の書き方は文を
「"」ダブルクォートで囲みます。

基本は
SELECT 列の位置
です。

列の位置はスプレッドシートの
列の位置を指定してください。

=QUERY(A1:L892 , "SELECT B , C")

このようにすれば
結果はB,Cの列のデータが出力されます。

SurvivedPclass
03
11
13


複数列の場合は「,」カンマで
つなぐことになります。

FROM句はQUERY関数の
第一引数で指定している部分なので
第二引数の所では不要になります。

WHERE句

次にWHERE句です。

条件指定をするところですね。

SELECT句の次に
WHERE句を指定します。
=QUERY(A1:L892, "SELECT D WHERE B = 1 AND E = 'male'")

Name
Williams, Mr. Charles Eugene
Beesley, Mr. Lawrence
Sloper, Mr. William Thompson




条件式の書き方は
通常のSQLと同様です。

列の値が一致するかどうかは = で判定
文字列を比較する場合は
文字列を「'」シングルクォートで囲みます。

数値の比較にはクォートは不要です。

LIKEで文字列の部分一致を
指定することもできます。

=QUERY(A1:L892, "SELECT D WHERE D like'%Mr.%'")

LIKEの後に
一致させたいところを書き
可変部分を % という形で指定します。


GROUP BY句

GROUP BY句はWHERE句の後に
指定をします。

グループ化したい列を指定して
SELECT句で集計関数を
使うことができるようになります。

ここではB列をグループ化して
A列の個数を数えてみます。

=QUERY(A1:L892, "SELECT B, COUNT(A) GROUP BY B")

Survived
count 
0549
1342

このような形で集計結果が出力されます。


PIVOT

PIVOTは機能としても有るようですが
GROUP BYの結果と違って
横に出力させることができます。

グループ化して集計した結果が
列方向に並ぶように出力されます。

=QUERY(A1:L892, "SELECT AVG(F) PIVOT C")
123
38.2334408629.8776300625.14061972



ORDER BY句

ORDER BY は並びかえです。

ORDER BY 並び替えしたい列名

デフォルトでは昇順
降順に並び替えたければ
DESCをつけます。

=QUERY(A1:L892, "SELECT F, COUNT(A) GROUP BY F ORDER BY F")
Age
count PassengerId
177
0.421
0.671
0.752


こんな形で簡易的にですが
スプレッドシートでSQLを
使うことができます。

意外と知られてはいないと思うので
使えると、仕事できる人感が
出るのではないでしょうかwww

是非使ってみてください。
それでは。