バイブクエリ: BigQuery のコメントを SQL に変換する機能を使って SQL クエリをすばやく作成
Gautam Gupta
ML Engineering Manager
※この投稿は米国時間 2026 年 1 月 15 日に、Google Cloud blog に投稿されたものの抄訳です。
複雑な SQL クエリの作成は容易な作業ではありません。エンジニアであれば、SQL のワークフロー内で簡単な英文を使ってデータのニーズを直接表現できないものかと考えることも少なくないでしょう。最近では、自然言語の AI プロンプトを使用してコードを生成する「バイブ コーディング」という方法により、誰もがより手軽に開発に取り組めるようになりました。そこでこのたび、BigQuery に「コメントを SQL に変換」機能を導入しました。この機能により、自然言語を使用したクエリの作成(「バイブクエリ」)が可能になります。
簡単な英文を SQL コードに
「コメントを SQL に変換」は、人間の言語を構造化データクエリに変換してくれる AI 機能です。SQL ステートメントに自然言語による表現を直接埋め込んで、それをシステムが実行可能な SQL コードに変換することができます。この変換を自動化することで、複雑なクエリを迅速に記述できるうえ、ボイラープレート コードの記述にかかる時間を短縮できます。
たとえば、週末を含めた 2 つの日付間の営業日数を計算する必要がある場合について考えてみましょう。この機能を使用すれば、2 つの日付間の営業日数を計算するための適切な関数を探す必要がなくなります。「How many business days are there between January 1st and March 15th, excluding weekends?」という自然言語表現を記述すれば、AI が SQL の日付関数を生成してくれます。これにより、SQL を手動で構築する手間が最小限に抑えられ、データから答えを見つける作業に集中できます。
主要な特長:
-
自然言語の埋め込み: 自然言語表現をコメント内に記述することで、SQL クエリに組み込むことができます。たとえば、「/* average trip distance by day of week */」のように記述します。
-
コンテキストの理解: BigQuery の AI は、SQL クエリの周囲のコンテキストを分析してコメントを正確に解釈します。これにより、生成される SQL がユーザーの意図に沿ったものになります。
-
多様な句に対応: さまざまな SQL 句内で自然言語表現を使用できます。たとえば、SELECT、FROM、WHERE、ORDER BY、GROUP BY などの句に対応しています。
-
複雑なクエリ: 1 つの SQL ステートメント内で複数の表現を使用することで、複雑なクエリを構築できます。たとえば、「SELECT /* average trip distance, total fare */ FROM /* NYC taxi ride public data of 2020 */ WHERE /* day of week is Saturday */ GROUP BY /* pickup location */」といった使い方が可能です。
-
誰でも利用可能: SQL の専門家でなくても、この機能を使用してデータ分析を実行できます。
-
その場で改良: 最初の SQL が生成されたら、自然言語表現を改良して、SQL 出力がどのように変化するかをすぐに確認できます。
すべての SQL ユーザーの作業をスピードアップ
Google は、デベロッパーの生産性向上とデータ探索の簡素化を目指しています。この機能は、SQL 初心者から熟練した SQL エキスパートまで、幅広いユーザー層にとって有用です。データ アナリスト、ソフトウェア開発者、ビジネス アナリストなど、あらゆる立場のユーザーが、BigQuery データをより効果的に操作できるようになります。たとえば、SQL 初心者は次のように利用できます。
-
統計情報の要約を生成する: SELECT /* average sales per region */ FROM /* sales_table */ GROUP BY /* region */
-
条件に基づいてデータをフィルタリングする: SELECT * FROM /* customer_table */ WHERE /* age is greater than 30 and city is New York */
-
結果を並べ替える: SELECT * FROM /* product_table */ ORDER BY /* price in descending order */
SQL の上級者向けに、さらに高度なユースケースをいくつかご紹介します。
1. 条件付き集計を使用した時系列分析。時系列の集計、条件付きのカウント、日付の抽出を 1 つのクエリで処理します。
自然言語表現:
SELECT /* daily average temperature, and count of days where temperature exceeded 30 degrees Celsius */
FROM /* weather_data */
WHERE /* year is 2023 */
GROUP BY /* day */
ORDER BY /* day */.
生成された SQL:
2. 複数テーブルの結合と複雑なフィルタリング。複数テーブルの結合、期間のフィルタリング、文字列ベースのフィルタリングを並べ替えと組み合わせて処理する方法です。
自然言語表現: SELECT /* customer name, order total, and product category */
FROM /* customers */ JOIN /* orders */ ON /* customer ID */ JOIN /* products */ ON /* product ID */
WHERE /* order date is in the last month and customer region is 'Europe'*/
ORDER BY /* order total descending */.
生成された SQL:
3. ランキングと移動平均のためのウィンドウ関数。通常は手動で記述すると複雑になるランキングのウィンドウ関数を処理します。日付の要素でデータをグループ化することもできます。
自然言語表現: SELECT /* product name, monthly sales, and rank of products by sales within each category */
FROM /* sales_data */
WHERE /* year is 2023 */
WINDOW /* partition by category order by monthly sales descending */.
生成された SQL:
4. 日付の集計とユーザー セグメントを使ったコホート分析。コホート分析は一般的なデータ分析手法ですが、複雑な手法でもあります。日付の切り捨てやグループ化のほか、時間の経過に伴うユーザー維持率をピボット処理によって表示するといった処理が行われます。
自然言語表現: SELECT /* cohort month, count of active users in each subsequent month */
FROM /* user_activity */
WHERE /* user signup date is between '2022-01-01' and '2022-12-31' */
GROUP BY /* cohort month, activity month */ PIVOT /* activity month */.
生成された SQL:
ご利用にあたって
私たちのチームでは、BigQuery のコメントで自然言語表現を使用して SQL を生成することで、お客様のワークフローを合理化できる可能性をすでに実感しています。BigQuery ツールキットの価値ある追加機能として、きっと皆様のお役に立つものと確信しております。利用方法は次のとおりです。
-
BQ Studio を開きます。
-
SQL 生成ウィジェットが有効になっていることを確認します。
例:
3. 変換するコメント付きの SQL を選択します。Gemini のガターボタンをクリックし、[コメントを SQL に変換] をクリックします。


4. 生成ウィジェットが表示され、変換された SQL / 自然言語表現の差分ビューが表示されます。
5. [挿入] を選択するか、改良 / マルチターン機能を使用して改良を続けます。
- ML エンジニアリング マネージャー、Gautam Gupta


