Gerar consulta SQL

Gerar uma consulta SQL para contar e classificar logins únicos no último mês

É possível consultar um modelo diretamente e testar os resultados retornados ao usar diferentes valores de parâmetros com o console do Cloud ou ao chamar a API Vertex AI diretamente.

Comando Freeform

Considere uma tabela com o esquema, conforme descrito abaixo.

  • Nome da coluna - Descrição
  • Username: nome do usuário que está fazendo login
  • LicenseType: pode ser "MultiUse" ou "SingleUse"
  • LoginTime> data e hora do evento de login

Como especialista em análise de dados, escreva uma consulta SQL que me mostre a lista de usuários, os tipos de licença e o número de dias únicos em que o usuário fez login nos últimos três meses. Classifique do maior número de logins em um mês até o menor número de logins em um mês.

Resposta

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;

Explicação:

  1. WITH MonthlyLogins AS (...): define uma expressão de tabela comum (CTE) chamada MonthlyLogins para calcular os dias de login exclusivos para cada usuário e tipo de licença em cada mês.
  2. SELECT ... FROM your_table WHERE LoginTime >= ...: seleciona os dados relevantes da tabela, filtrando os eventos de login nos últimos três meses.
  3. DATE_TRUNC('month', LoginTime) AS LoginMonth: extrai o início do mês da coluna LoginTime e atribui o alias a LoginMonth.
  4. COUNT(DISTINCT DATE(LoginTime)) AS UniqueLoginDays: conta as datas de logins distintas de cada mês, informando o número de dias de login exclusivos.
  5. GROUP BY Username, LicenseType, LoginMonth: agrupa os resultados por nome de usuário, tipo de licença e mês do login.
  6. SELECT ... FROM MonthlyLogins GROUP BY Username, LicenseType: seleciona o nome de usuário e o tipo de licença e soma o valor de UniqueLoginDays de cada usuário e tipo de licença em todos os meses.
  7. ORDER BY TotalUniqueLoginDays DESC: classifica os resultados em ordem decrescente com base no número total de dias de login únicos.

Observação:

  • Substitua your_table pelo nome real da sua tabela.
  • Esta consulta pressupõe que sua coluna LoginTime é um tipo de dados de carimbo de data/hora ou data e hora.
  • A função DATE_TRUNC pode variar dependendo do seu sistema de banco de dados específico.

Esta consulta fornecerá uma lista de usuários, seus tipos de licença e o número total de dias únicos em que eles fizeram login nos últimos três meses, classificados do maior para o menor número de dias de login.

Modelo: gemini-1.5-flash-001
Temperatura: 1
Máximo de tokens de saída: 8192
TopK: 40
TopP: 0,95