生成 SQL 查询

生成 SQL 查询以统计上个月的唯一登录并进行排序

在对 Cloud 控制台使用不同参数值时,或通过直接调用 Vertex AI API,您可以直接查询模型,并测试返回的结果。

提示自由格式

假设一个表具有下述架构。

  • 列名称 - 说明
  • Username - 已登录用户的用户名
  • LicenseType -“MultiUse”或“SingleUse”
  • LoginTime - 登录事件的日期时间

作为数据分析专家,请编写一个 SQL 查询来输出一个列表,其中包含用户、用户的许可类型以及用户在过去 3 个日历月内的唯一登录天数。按一个月内的登录次数从高到低排序。

响应

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
TopK: 40
TopP: 0.95