Genera consultas en SQL

Genera una consulta en SQL para contar y ordenar los accesos únicos en el último mes

Puedes consultar un modelo directamente y probar los resultados que se muestran cuando usas valores de parámetros diferentes con la consola de Cloud o con una llamada directa a la API de Vertex AI.

Mensaje Formato libre

Considera una tabla con esquema como se describe a continuación.

  • Nombre de columna: Descripción
  • Nombre de usuario: nombre de usuario del usuario que accede
  • Tipo de licencia: “Multiuso” o “Uso único”
  • Hora de acceso: Fecha y hora del evento de acceso

Como experto en análisis de datos, escribe una consulta de SQL para mostrarme la lista de usuarios, sus tipos de licencias y la cantidad de días únicos en los que el usuario accedió durante los últimos 3 meses calendario. Puedes ordenarla por el recuento de accesos más alto en un mes hasta el recuento más bajo de accesos en un mes.

Respuesta

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;

Explicación:

  1. WITH MonthlyLogins AS (...): Esto define una expresión de tabla común (CTE) llamada MonthlyLogins para calcular los días de acceso únicos para cada usuario y tipo de licencia en cada mes.
  2. SELECT ... FROM your_table WHERE LoginTime >= ...: Selecciona los datos relevantes de tu tabla y filtra por eventos de acceso de los últimos 3 meses.
  3. DATE_TRUNC('month', LoginTime) AS LoginMonth: Esto extrae el comienzo del mes de la columna LoginTime y su alias como LoginMonth.
  4. COUNT(DISTINCT DATE(LoginTime)) AS UniqueLoginDays: cuenta las fechas distintas de accesos dentro de cada mes, lo que nos brinda la cantidad de días de acceso únicos.
  5. GROUP BY Username, LicenseType, LoginMonth: Agrupa los resultados por nombre de usuario, tipo de licencia y mes de acceso.
  6. SELECT ... FROM MonthlyLogins GROUP BY Username, LicenseType: Selecciona el nombre de usuario, el tipo de licencia y suma el UniqueLoginDays de cada usuario y tipo de licencia durante todos los meses.
  7. ORDER BY TotalUniqueLoginDays DESC: Ordena los resultados en orden descendente según la cantidad total de días de acceso únicos.

Nota:

  • Reemplaza your_table por el nombre real de tu tabla.
  • Esta consulta supone que la columna LoginTime es un tipo de datos de marca de tiempo o fecha y hora.
  • La función DATE_TRUNC puede variar según el sistema de base de datos específico.

Esta consulta te proporcionará una lista de usuarios, sus tipos de licencias y la cantidad total de días únicos a los que accedieron durante los últimos 3 meses, ordenados desde la cantidad de días de acceso más alta a la más baja.

Modelo: gemini-1.5-flash-001
Temperatura: 1
Cantidad máxima de tokens de salida: 8192
K superior 40
P superior 0.95