Googleスプレッドシートでは
簡易なデータを取り込んで
SQLを使うことができるようになっています。
今回はそのやり方をご紹介します。
解説動画はこちら
データの取り込み
さてまずはデータを取り込みしてみましょう。
外部からデータを取り込む関数があります。
これでデータを取り込んでみましょう。
スプレッドシートを立ち上げて
シートのA1にこのコードを貼り付けて
実行してみましょう。
IMPORTDATA("外部データのURL")
で外部データを取り込みできます。
あまり大きなデータは取り込めずに
エラーになってしまうようです。
目安は16000行ほどです。
小さなデータであれば
大丈夫でしょう。
QUERYの実行方法
データが取り込めたら
次はSQLを使う関数です。
QUERY関数でSQLを実行できます。
QUERY(<データ範囲>, "クエリ")
第一引数にデータ範囲を指定します。
クエリの対象データの範囲は
シートの位置を指定します。
今回取り込んだデータが
A:L列まで、892行目までのデータでした。
指定としては A1:L892
で全部を範囲指定できます。
SQLのSELECT文で言う
FROM句に該当します。
第二引数にクエリを書いていきます。
SELECT句
第二引数として指定する
クエリの部分です。
SELECT句の書き方は文を
「"」ダブルクォートで囲みます。
基本は
SELECT 列の位置
です。
列の位置はスプレッドシートの
列の位置を指定してください。
このようにすれば
結果はB,Cの列のデータが出力されます。
複数列の場合は「,」カンマで
つなぐことになります。
FROM句はQUERY関数の
第一引数で指定している部分なので
第二引数の所では不要になります。
WHERE句
次にWHERE句です。
条件指定をするところですね。
SELECT句の次に
WHERE句を指定します。
条件式の書き方は
通常のSQLと同様です。
列の値が一致するかどうかは = で判定
文字列を比較する場合は
文字列を「'」シングルクォートで囲みます。
数値の比較にはクォートは不要です。
LIKEで文字列の部分一致を
指定することもできます。
LIKEの後に
一致させたいところを書き
可変部分を % という形で指定します。
GROUP BY句
GROUP BY句はWHERE句の後に
指定をします。
グループ化したい列を指定して
SELECT句で集計関数を
使うことができるようになります。
ここではB列をグループ化して
A列の個数を数えてみます。
このような形で集計結果が出力されます。
PIVOT
PIVOTは機能としても有るようですが
GROUP BYの結果と違って
横に出力させることができます。
グループ化して集計した結果が
列方向に並ぶように出力されます。
ORDER BY句
ORDER BY は並びかえです。
ORDER BY 並び替えしたい列名
デフォルトでは昇順
降順に並び替えたければ
DESCをつけます。
こんな形で簡易的にですが
スプレッドシートでSQLを
使うことができます。
意外と知られてはいないと思うので
使えると、仕事できる人感が
出るのではないでしょうかwww
是非使ってみてください。
それでは。
簡易なデータを取り込んで
SQLを使うことができるようになっています。
今回はそのやり方をご紹介します。
解説動画はこちら
データの取り込み
さてまずはデータを取り込みしてみましょう。
外部からデータを取り込む関数があります。
これでデータを取り込んでみましょう。
スプレッドシートを立ち上げて
シートのA1にこのコードを貼り付けて
実行してみましょう。
=IMPORTDATA("https://gist.githubusercontent.com/michhar/2dfd2de0d4f8727f873422c5d959fff5/raw/fa71405126017e6a37bea592440b4bee94bf7b9e/titanic.csv")
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の列のデータが出力されます。
複数列の場合は「,」カンマで
つなぐことになります。
FROM句はQUERY関数の
第一引数で指定している部分なので
第二引数の所では不要になります。
WHERE句
次にWHERE句です。
条件指定をするところですね。
SELECT句の次に
WHERE句を指定します。
=QUERY(A1:L892, "SELECT D WHERE B = 1 AND E = 'male'")
条件式の書き方は
通常の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")
このような形で集計結果が出力されます。
PIVOT
PIVOTは機能としても有るようですが
GROUP BYの結果と違って
横に出力させることができます。
グループ化して集計した結果が
列方向に並ぶように出力されます。
=QUERY(A1:L892, "SELECT AVG(F) PIVOT C")
ORDER BY句
ORDER BY は並びかえです。
ORDER BY 並び替えしたい列名
デフォルトでは昇順
降順に並び替えたければ
DESCをつけます。
=QUERY(A1:L892, "SELECT F, COUNT(A) GROUP BY F ORDER BY F")
こんな形で簡易的にですが
スプレッドシートでSQLを
使うことができます。
意外と知られてはいないと思うので
使えると、仕事できる人感が
出るのではないでしょうかwww
是非使ってみてください。
それでは。