Générer une requête SQL

Générer une requête SQL pour compter et trier les connexions uniques au cours du mois dernier

Vous pouvez interroger un modèle directement et tester les résultats renvoyés lors de l'utilisation de différentes valeurs de paramètre en utilisant la console Cloud ou en appelant directement l'API Vertex AI.

Requête forme libre

Prenons l'exemple d'une table avec schéma, comme décrit ci-dessous.

  • Nom de la colonne : description
  • Nom d'utilisateur : nom de l'utilisateur qui se connecte
  • LicenseType : "MultiUse" (utilisations multiples) ou "SingleUse" (utilisation unique)
  • LoginTime : date et heure de l'événement de connexion

En tant qu'expert en analyse de données, veuillez écrire une requête SQL pour m'indiquer la liste des utilisateurs, leurs types de licence et le nombre de jours uniques pendant lesquels l'utilisateur s'est connecté au cours des trois derniers mois calendaires. Triez les utilisateurs par nombre de connexions au cours d'un mois, dans l'ordre décroissant.

Réponse

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;

Explication :

  1. WITHMonthLogins AS (...) : définit une expression de table commune (CTE) nommée MonthlyLogins pour calculer le nombre de jours de connexion unique pour chaque utilisateur et type de licence au cours de chaque mois.
  2. SELECT ... FROM your_table WHERE LoginTime >= ... : cette option sélectionne les données pertinentes dans votre table, en filtrant les événements de connexion des trois derniers mois.
  3. DATE_TRUNC('month', LoginTime) AS LoginMonth : cette fonction extrait le début du mois de la colonne LoginTime et le convertit en alias en tant que LoginMonth.
  4. COUNT(DISTINCT DATE(LoginTime)) AS UniqueLoginDays : compte les dates de connexion distinctes au cours de chaque mois, ce qui nous donne le nombre de jours de connexion uniques.
  5. GROUP BY Username, LicenseType, LoginMonth : regroupe les résultats par nom d'utilisateur, type de licence et mois de connexion.
  6. SELECT ... FROM MonthlyLogins GROUP BY Username, LicenseType : sélectionne le nom d'utilisateur et le type de licence, et additionne les UniqueLoginDays pour chaque utilisateur et type de licence pour tous les mois.
  7. ORDER BY TotalUniqueLoginDays DESC : trie les résultats par ordre décroissant en fonction du nombre total de jours de connexion unique.

Remarque :

  • Remplacez your_table par le nom réel de votre table.
  • Cette requête suppose que votre colonne LoginTime est de type horodatage ou date/heure.
  • La fonction DATE_TRUNC peut varier en fonction de votre système de base de données spécifique.

Cette requête vous fournit la liste des utilisateurs, leurs types de licence et le nombre total de jours uniques pendant lesquels ils se sont connectés au cours des trois derniers mois, triés du nombre de jours de connexion le plus élevé au plus bas.

Modèle : gemini-1.5-flash-001
Température : 1
Nombre maximal de jetons de sortie : 8 192
TopK : 40
TopP : 0,95