未経験PdMがChatGPTを使ってSQLクエリを作成した話

  • URLをコピーしました!

こんにちは。PR TIMES開発本部プロダクトチームでプロダクトマネージャー(PdM)をやっている渡邉です。
2023年2月に初の中途採用PdMとして入社しました。

以前にPdMとしての実務経験は無く、未経験枠で採用して頂きました。SQLを触ったのは今の会社に入ってからになります。

普段はお客様からの技術的な問い合わせに対応したり、各プロジェクトのアシスタントをしています。

目次

PR TIMESでのChatGPTの使用状況について

フロントエンドエンジニアの岩元さん(@yoiwamoto) がChatGPTを社内利用可能な状態にしてくれました。
(利用しているのは OpenAI Chat API ですが、便宜上 ChatGPT と表記します)

あわせて読みたい
chatbot-ui で ChatGPT を社内利用できるようにしました こんにちは。PR TIMES 開発本部フロントエンドエンジニアのいわもと (@yoiwamoto) です。ChatGPT を業務で利用するために、OSS の chatbot-ui を社内でセルフホストして...

PdM側でSQLクエリを作成出来ると、エンジニアに依頼する際の作業工数が減り、また問い合わせの対応策を考える際に、よりエンジニア目線で検討が出来ます。

今回はChatGPTを利用して技術的問い合わせに対応してみました。

やったこと

あるデータ100件に対してboolean型のカラムを一括でfalseに更新するクエリを作成しました。

↓テーブル

company_id | release_id | create_dt | free_flg |

  • company_id:各企業のID
  • release_id:プレスリリースのID
  • create_dt:データ更新時刻
  • free_flg:無料か否か

今回は、free_flgを一括でtrue→falseに更新します。
※クエリを実行する前に念のためエンジニアにレビューを依頼しました

2つのカラムを条件として指定する記法が分からなかったのでChatGPTに相談しました。

何か違う、、、

なるほど!

例えば、employeesというテーブルのphoneというカラムをJohn DoeさんとJane Smithさんのみ555-1234という値で更新したい場合、下記のクエリを呼べば良いことが分かりました。

UPDATE employees
SET phone = '555-1234'
WHERE (first_name = 'John' AND last_name = 'Doe' AND email = 'john.doe@example.com') OR (first_name = 'Jane' AND last_name = 'Smith' AND email = 'jane.smith@example.com');

よって今回、100件のデータに対して呼ぶクエリは下記のイメージになります。

UPDATE (テーブル名)
SET free_flg = false
where (company_id  = [企業ID] and release_id = [リリースID]) or (company_id  = [企業ID] and release_id = [リリースID])………100件分

where以降のcompany_idとrelease_idが対になった文字列が100組必要なので、手作業で作成するのは厳しいと思い、一気に作成できる方法を探しました。

今回、手元にあるデータは企業IDとリリースIDが対になったエクセルファイルのみです。

これらがクエリと組み合わさるよう、各値の前にカラム名とイコールが来るような文字列を100組一気に作成する方法をChatGPTに相談しました。

具体的には、

  1. company_idとrelease_idが対になった(company_id = ~ and release_id = ~)の文字列を作成
  2. 各()をorでつないでいく

上記の手順で100組分の文字列を作成します。1.と2.のやり方についてChatGPTに相談しました。

まずは文字列の作成方法について相談しました。

&演算子が簡単そうなのでこちらを使いました。

例えば、2行目のリリースに関しては、

=”(company_id = “&A2&” and “&”release_id=”&B2&”)”という計算式をC2に入力すれば結合した文字列が得られます。

(company_id = ~ and release_id = ~)の文字列を100件作成しました。

次に、文字列をORで連結する方法について相談しました。

なるほど、TEXTJOIN関数を使えば良いんですね。

=TEXTJOIN(” or “,TRUE,C2:C101)で結合した文字列をD2セルに作成しました。
ご丁寧にORの両側のスペースやOfficeのバージョンによっては関数が使えない可能性まで示唆してくれるんですね。

おかげで綺麗な文字列が出来ました。
エクセルシート上で100件の(company_id = ~ and release_id = ~)をORで区切った文字列を作成しました。

これをwhere以降にコピー&ペーストし、クエリが完成しました。

まとめ

今回、データを更新するためのSQLクエリについてその記法と、文字列の作成方法をchatGPTを使用して調査し、実践しました。

分からない分野の知識がGoogle検索よりも早く手に入るので、ビジネス部門も積極的に活用していくべきだと思いました。

  • URLをコピーしました!

この記事を書いた人

23年中途入社でPdMをやっています。

目次