SQL-Abfrage generieren

Eine SQL-Abfrage generieren, um eindeutige Anmeldungen im letzten Monat zu zählen und zu sortieren

Sie können ein Modell direkt abfragen und die zurückgegebenen Ergebnisse testen, wenn Sie verschiedene Parameterwerte mit der Cloud Console oder durch direkten Aufruf der Vertex AI API verwenden.

Freiform-Prompt

Betrachten Sie eine Tabelle mit Schema wie unten beschrieben.

  • Spaltenname – Beschreibung
  • Nutzername – Nutzername des Nutzers, der sich anmeldet.
  • LicenseType – entweder "MultiUse" oder "SingleUse"
  • LoginTime – Datum und Uhrzeit des Anmeldeereignisses

Als Datenanalyse-Experte schreiben Sie bitte eine SQL-Abfrage, die mir die Liste der Nutzer, ihre Lizenztypen und die Anzahl der eindeutigen Tage, an denen sich der Nutzer in den letzten 3 Kalendermonaten eingeloggt hat, anzeigt. Sortieren Sie nach der höchsten Anzahl von Anmeldungen in einem Monat bis zur niedrigsten Anzahl von Anmeldungen pro Monat.

Antwort

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;

Erklärung:

  1. WITH MonthLogins AS (...): Definiert einen allgemeinen Tabellenausdruck (Common Table Expression, CTE) mit dem Namen MonthlyLogins, um die eindeutigen Anmeldetage für jeden Nutzer und Lizenztyp innerhalb jedes Monats zu berechnen.
  2. SELECT ... FROM your_table WHERE LoginTime >= ...: Mit dieser Option werden die relevanten Daten aus der Tabelle ausgewählt und nach Anmeldeereignissen der letzten 3 Monate gefiltert.
  3. DATE_TRUNC(' month', LoginTime) AS LoginMonth: Extrahiert den Anfang des Monats aus der Spalte LoginTime und bezeichnet ihn als LoginMonth.
  4. COUNT(DISTINCT DATE(LoginTime)) AS UniqueLoginDays: Hiermit werden die verschiedenen Daten der Anmeldungen innerhalb eines Monats gezählt. So erhalten wir die Anzahl der einzelnen Tage mit Anmeldung.
  5. GROUP BY Username, LicenseType, LoginMonth: Gruppiert die Ergebnisse nach Nutzername, Lizenztyp und Anmeldemonat.
  6. SELECT ... FROM MonthLogins GROUP BY Username, LicenseType: Wählt den Nutzernamen und den Lizenztyp aus und addiert die UniqueLoginDays für jeden Nutzer und Lizenztyp über alle Monate hinweg.
  7. ORDER BY TotalUniqueLoginDays DESC: sortiert die Ergebnisse in absteigender Reihenfolge basierend auf der Gesamtzahl der einzelnen Anmeldetage.

Hinweis:

  • Ersetzen Sie your_table durch den tatsächlichen Namen Ihrer Tabelle.
  • Bei dieser Abfrage wird davon ausgegangen, dass die Spalte LoginTime ein Zeitstempel- oder Datetime-Datentyp ist.
  • Die Funktion DATE_TRUNC kann je nach irhem Datenbanksystem variieren.

Diese Abfrage liefert Ihnen eine Liste der Nutzer, ihrer Lizenztypen und der Gesamtzahl der einzelnen Tage, an denen sie sich in den letzten drei Monaten angemeldet haben. Die Liste wird von der höchsten bis zur niedrigsten Anzahl an Anmeldetagen sortiert.

Modell: gemini-1.5-flash-001
Temperatur: 1
Max. Ausgabetokens: 8.192
TopK: 40
TopP: 0,95