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 di parametro diversi con la console Cloud o chiamando direttamente l'API Vertex AI.

Prompt in formato libero

Considera una tabella con lo schema descritto di seguito.

  • Nome colonna - Descrizione
  • Nome utente: il nome utente dell'utente che ha eseguito l'accesso.
  • LicenseType: può essere "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 tipi di licenza e il numero di giorni unici in cui l'utente ha eseguito l'accesso negli ultimi 3 mesi di calendario. Ordina i dati dal 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 AccessiMensili AS (...): definisce un'espressione tabella comune (CTE) denominata MonthlyLogins per calcolare i giorni di accesso univoci per ogni utente e tipo di licenza in ogni mese.
  2. SELECT ... FROM tua_tabella WHERE OraLogin >= ...: seleziona i dati pertinenti dalla tabella, filtrando per gli eventi di accesso negli ultimi 3 mesi.
  3. DATE_TRUNC('month', LoginTime) AS LoginMonth estrae l'inizio del mese dalla colonna LoginTime e lo assegna come LoginMonth.
  4. CONTA.DISTINTI(DATA(DataAcceso)) COME GiorniAccediUnici: conteggia le date distinte degli accessi 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: seleziona il nome utente, il tipo di licenza e somma UniqueLoginDays per ogni utente e tipo di licenza in tutti i mesi.
  7. ORDER BY TotalUniqueLoginDays DESC: ordina i risultati in ordine decrescente in base al numero totale di giorni di accesso univoci.

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 fornisce un elenco di utenti, i tipi di licenza e il numero totale di giorni univoci in cui hanno eseguito l'accesso negli ultimi tre mesi, ordinati dal numero più alto al più basso di giorni di accesso.

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