はじめに
デジタル時代において、データは企業にとって貴重な資産となっています。それぞれの企業では日夜大量のデータを収集し、それを分析・活用することで競争力を高める動きが活発となっています。
その中で、SQL(Structured Query Language)はデータベースに管理されたデータの操作や抽出を行い分析を行う上でも切り離すことのできない言語となっています。
※Salesforceでも同様です。こちらではSOQLというものを使います。
つまりSQLのスキルを持つことは、ビジネスの効率化や意思決定の根拠となるデータ分析において必要不可欠な要素なのです。
★特に営業職や現場カスタマーサクセス職の人間も使いこなせることで現場目線での分析がスピード感持って行えます。
一方で、SQLに対する苦手意識を持つ人も多く存在します。これからの時代特にビジネス職の人やエンジニアは、扱えて当たり前になるものの不慣れなことゆえ、データの抽出や分析に時間がかかったり、作業効率低下になってしまうこともあり得ます。
こうした背景から、SQLが苦手な人やプログラミングの知識がない人にとって、ノーコードでクエリを生成するツールが重要となります。そこで今回は、現場レベルでの分析を支援する気持ちで、ノーコードにクエリを生成するための方法を検証します!
そもそもSQLって難しい?
そんなことはない!
SQLはあくまでデータベース内のデータを操作するためのもので、よくあるプログラミングとは異なりますし、データベースの設計知識が必要なわけでもないんです!
車の運転でも、普通車や原付について運転する方法さえわかれば扱えますよね?あって損はないですが、エンジンの仕組みやギアチェンジについて知らなくても大丈夫ですよね?
それと一緒なので安心して下さい!
なお、テーブルやカラムと言った用語は何を指すのかだけは知っておいた方がいいので、下記の記事を一度読んでおくことをお勧めいたします!
SQLを使ったデータ操作の例
念のため、どのように操作するものなのか、以下に基本的なSQLの例を示します。
※と言いつつSELECT文を1つ載せるだけですがね、、、
基本の形となるデータ抽出は下記のようなものです。
SELECT * FROM テーブル名 ;
いかがでしょうか?
*の箇所がテーブルの中のカラムを指定する箇所で、今回の場合アスタリスクなので全てのカラムを指定していることになります。
そしてFROMにて”どこのテーブル”かを指定しています。
これが基本で、絞り込みの条件やテーブル同士から合体させたりなどの条件を指定することでさらに詳細なデータを抽出することができ、これをデータ分析をする上で使っています。
★多少の差異はありますがSalesforceのSOQLもほぼ同じ方法です。
ChatGPTを使ったクエリ生成の検証
それではChatGPTを使ってクエリを自動生成してもらいましょう!
今回の検証で見てもらいたいことは、「どこまで指示をすれば効率的な運用ができるのか」というところになります!
※特性上、プロンプトにはこだわる必要があります。
今回は大人気BigQuery上に保存したテーブルデータを使って、実行結果をみていくことにします!
※サンプルデータは下記の記事から拝借しています。
今回のテーブルは下記のER図のような関係となります。
※こちらも拝借しています。

それではまずはシンプルに学生ごとにどの講座を受講しているのか、氏名と講座名を紐付けた結果を出力してみましょう。
下記の通りChatGPTに指示してみます。



はじめにChatGPTにはBigQueryであること、データセット名とテーブル名、それぞれのカラムについての情報を前提として与えており、やって欲しいことを依頼する形にしています!
本当にこれだけで出力されるのか気になりますよね?
確認してみましょう!


なんと問題なく出力されていますね!
それでは最後に、先生が関わる生徒の数を数えるためのクエリ生成を依頼してみましょう。


この通り、問題なく実行できましたね!
このようにChatGPTにクエリを作成依頼する場合は、可能な限り情報の開示をしてあげることでより精度の良い回答も得られます。この辺りの前提情報だけはSQLやデータベースの状況を知っている方にセットしてもらう、またはデータベースのテーブル状況をChatGPTに渡すことのできる状況であることで、したいことを伝えるだけでクエリの生成が数秒でできてしまいます!
※今回のクエリは簡単だからできたとかはナシですよ!!!