SQL クエリを生成する

過去 1 か月のユニーク ログインのカウントと並べ替えを行う SQL クエリを生成する

直接モデルにクエリを実行して、返された結果をテストできます。その場合、Cloud コンソールでさまざまなパラメータ値を使用することも、Vertex AI API を直接呼び出すこともできます。

自由形式のプロンプト

次のようなスキーマを持つテーブルについて考えます。

  • 列名 - 説明
  • Username - ログインするユーザーのユーザー名
  • LicenseType - "MultiUse" または "SingleUse"
  • LoginTime - ログイン イベントの日時

データ分析の専門家として、SQL クエリを記述して、ユーザーのリスト、ライセンス タイプ、過去 3 か月間にユーザーがログインした一意の日数を示してください。1 か月のログイン回数の多い順から少ない順に並べ替えます。

レスポンス

WITH MonthlyLogins AS (
SELECT
Username,
LicenseType,
DATE_TRUNC('month', LoginTime) AS LoginMonth,
COUNT(DISTINCT DATE(LoginTime)) AS UniqueLoginDays
FROM your_table
WHERE LoginTime >= DATE_TRUNC('month', CURRENT_DATE - INTERVAL '3 month')
GROUP BY Username, LicenseType, LoginMonth
)
SELECT
Username,
LicenseType,
SUM(UniqueLoginDays) AS TotalUniqueLoginDays
FROM MonthlyLogins
GROUP BY Username, LicenseType
ORDER BY TotalUniqueLoginDays DESC;

説明:

  1. WITH MonthlyLogins AS (...): MonthlyLogins という名前の共通テーブル式(CTE)を定義して、各月内のユーザーとライセンス タイプごとの一意のログイン日数を計算します。
  2. SELECT ... FROM your_table WHERE LoginTime >= ...: テーブルから関連するデータを選択し、過去 3 か月のログイン イベントをフィルタします。
  3. DATE_TRUNC('month', LoginTime) AS LoginMonth: LoginTime 列から月の初めを抽出し、LoginMonth という別名を付けます。
  4. COUNT(DISTINCT DATE(LoginTime)) AS UniqueLoginDays: 各月のログインの日付を個別にカウントし、ユニークなログイン日数を取得します。
  5. GROUP BY Username, LicenseType, LoginMonth: 結果をユーザー名、ライセンス タイプ、ログイン月でグループ化します。
  6. SELECT ... FROM MonthlyLogins GROUP BY Username, LicenseType: ユーザー名とライセンス タイプを選択し、各ユーザーとライセンス タイプについてすべての月で UniqueLoginDays を合計します。
  7. ORDER BY TotalUniqueLoginDays DESC: ユニーク ログイン日の合計数に基づいて結果を降順で並べ替えます。

注:

  • your_table は、テーブルの実際の名前に置き換えます。
  • このクエリは、LoginTime 列がタイムスタンプまたは日時のデータ型であることを前提としています。
  • DATE_TRUNC 関数は、特定のデータベース システムによって異なる場合があります。

このクエリは、ユーザーのリスト、ライセンス タイプ、過去 3 か月間にログインした一意の日数の合計数を、ログイン日数の多い順に返します。

モデル: gemini-1.5-flash-001
温度: 1
最大出力トークン: 8192
トップ K 40
トップ P 0.95