Genera query SQL

Genera una query SQL per conteggiare e ordinare gli accessi univoci nell'ultimo mese

Puoi eseguire query direttamente su un modello e testare i risultati restituiti quando utilizzi valori parametro diversi con la console Cloud o chiamando direttamente l'API Vertex AI.

Richiesta in formato libero

Considera una tabella con lo schema come descritto di seguito.

  • Nome colonna - Descrizione
  • Nome utente: il nome utente dell'utente che ha eseguito l'accesso
  • LicenseType: "MultiUse" o "SingleUse"
  • LoginTime: la data e l'ora dell'evento di accesso.

In qualità di esperto di analisi dei dati, scrivi una query SQL per mostrarmi l'elenco degli utenti, i loro tipi di licenza e il numero di giorni univoci in cui l'utente ha eseguito l'accesso negli ultimi tre mesi di calendario. Ordinalo per il numero più alto di accessi in un mese al numero più basso di accessi in un mese.

Risposta

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;

Spiegazione:

  1. WITH MonthlyLogins AS (...): definisce un'espressione della tabella comune (CTE) denominata MonthlyLogins per calcolare i giorni di accesso univoci per ogni utente e il tipo di licenza all'interno di ogni mese.
  2. SELECT ... FROM your_table WHERE LoginTime >= ...: seleziona i dati pertinenti dalla tabella, filtrando in base agli eventi di accesso degli ultimi 3 mesi.
  3. DATE_TRUNC('month', LoginTime) AS LoginMonth: estrae l'inizio del mese dalla colonna LoginTime e lo fa come LoginMonth.
  4. COUNT(DISTINCT DATE(LoginTime)) AS UniqueLoginDays: conteggia le singole date di accesso in ogni mese, fornendo il numero di giorni di accesso univoci.
  5. GROUP BY Username, LicenseType, LoginMonth: raggruppa i risultati per nome utente, tipo di licenza e mese di accesso.
  6. SELECT ... FROM MonthlyLogins GROUP BY Username, LicenseType (Nome utente e tipo di licenza): vengono selezionati il nome utente e il tipo di licenza e viene sommato il valore di UniqueLoginDays per ogni utente e tipo di licenza per tutti i mesi.
  7. ORDER BY TotalUniqueLoginDays DESC: ordina i risultati in ordine decrescente in base al numero totale di giorni di accesso unico.

Nota:

  • Sostituisci your_table con il nome effettivo della tabella.
  • Questa query presuppone che la colonna LoginTime sia un tipo di dati con timestamp o data/ora.
  • La funzione DATE_TRUNC può variare a seconda del sistema di database specifico.

Questa query ti fornirà un elenco di utenti, i relativi tipi di licenza e il numero totale di giorni unici in cui hanno eseguito l'accesso negli ultimi tre mesi, ordinati dal numero più alto al più basso.

Modello: gemini-1.5-flash-001
Temperatura: 1
Numero massimo di token di output: 8192
TopK: 40
TopP: 0,95