Help me een SQL-query te maken om een rapport te genereren over gebruikersactiviteit van de afgelopen maand
description
Door het genereren van dit rapport kan ik waardevolle inzichten krijgen in gebruikersgedrag, trends identificeren en strategieën voor gebruikersbetrokkenheid verbeteren.
prompt
try_prompt
Ik heb hulp nodig bij het schrijven van een SQL-query die de gebruikersactiviteit in mijn database samenvat over de laatste maand. Voeg statistieken toe zoals totaal ... more
generate_helper
...
tags
ai_answers
provider: openai
model: gpt-4.1-nano
Hier is een voorbeeld van een SQL-query die de gebruikersactiviteit over de laatste maand samenvat in MySQL:
```sql
SELECT
COUNT(*) AS totaal_inlogpogingen,
COUNT(DISTINCT gebruikers_id) AS unieke_gebruikers,
COUNT(*) AS totaal_acties
FROM
gebruikers_activiteiten
WHERE
timestamp >= DATE_SUB(CURDATE(), INTERVAL 1 MONTH);
```
**Uitleg van de query:**
- `gebruikers_activiteiten`: Dit is de tabel die je gebruikt voor het bijhouden van activiteiten. Pas deze naam aan als je een andere tabelnaam hebt.
- `timestamp`: Dit is de kolom waarin de datum en tijd van elke activiteit wordt opgeslagen. Vervang deze indien je een andere kolomnaam hebt.
- `DATE_SUB(CURDATE(), INTERVAL 1 MONTH)`: Geeft de datum en tijd weer van precies één maand geleden vanaf vandaag.
**Wat de resultaten betekenen:**
- **totaal_inlogpogingen**: Het totale aantal inlogpogingen of activiteiten in de afgelopen maand.
- **unieke_gebruikers**: Het aantal verschillende gebruikers die in deze periode actief waren.
- **totaal_acties**: Het totale aantal acties dat is ondernomen, afhankelijk van hoe je tabel is gestructureerd. Als elke rij bijvoorbeeld een actie vertegenwoordigt, is dit gelijk aan het totaal aantal rijen dat aan de criteria voldoet.
**Aanpassingen:**
Pas de tabelnaam en kolomnamen aan op basis van jouw database. Als je bijvoorbeeld een aparte tabel hebt voor inlogpogingen en een andere voor acties, moet je mogelijk meerdere queries maken of een samengestelde query.
Indien je bijvoorbeeld aparte statistieken voor inloggen en andere acties wilt, zou je dat kunnen doen door verschillende `WHERE`-clausules te gebruiken of joins indien nodig.
---
Heb je meer specifieke informatie over je tabelstructuur, dan help ik je graag met een meer gerichte query!
provider: deepseek
model: deepseek-chat
Hier is een MySQL query die de gebruikersactiviteit van de laatste maand samenvat:
```sql
SELECT
COUNT(DISTINCT user_id) AS unieke_gebruikers,
COUNT(*) AS totaal_inlogpogingen,
SUM(CASE WHEN actie_type = 'login' THEN 1 ELSE 0 END) AS succesvolle_logins,
SUM(CASE WHEN actie_type = 'login_failed' THEN 1 ELSE 0 END) AS mislukte_logins,
COUNT(DISTINCT actie_type) AS verschillende_actietypes,
DATE(MAX(timestamp)) AS laatste_activiteit
FROM gebruikersactiviteit
WHERE timestamp >= DATE_SUB(CURDATE(), INTERVAL 1 MONTH)
AND timestamp < CURDATE();
```
**Aanpassingen die je mogelijk moet maken:**
- `gebruikersactiviteit` → naam van jouw tabel
- `user_id` → kolomnaam voor gebruikersidentificatie
- `actie_type` → kolom die het type actie bijhoudt
- `timestamp` → kolom met tijdstempel van activiteit
**Interpreteren van de resultaten:**
- **unieke_gebruikers**: Aantal verschillende gebruikers die actief waren
- **totaal_inlogpogingen**: Totaal aantal login pogingen (zowel succesvol als mislukt)
- **succesvolle_logins**: Aantal keer dat gebruikers succesvol inlogden
- **mislukte_logins**: Aantal gefaalde login pogingen (kan wijzen op problemen)
- **verschillende_actietypes**: Hoeveel verschillende soorten acties gebruikers ondernamen
- **laatste_activiteit**: De datum van de meest recente activiteit
**Extra analyse voor meer inzicht:**
```sql
-- Activiteit per dag
SELECT
DATE(timestamp) AS dag,
COUNT(DISTINCT user_id) AS dagelijkse_gebruikers,
COUNT(*) AS dagelijkse_activiteiten
FROM gebruikersactiviteit
WHERE timestamp >= DATE_SUB(CURDATE(), INTERVAL 1 MONTH)
GROUP BY DATE(timestamp)
ORDER BY dag DESC;
-- Meest actieve gebruikers
SELECT
user_id,
COUNT(*) AS totaal_acties,
COUNT(DISTINCT actie_type) AS verschillende_acties
FROM gebruikersactiviteit
WHERE timestamp >= DATE_SUB(CURDATE(), INTERVAL 1 MONTH)
GROUP BY user_id
ORDER BY totaal_acties DESC
LIMIT 10;
```
Deze queries geven je een goed overzicht van de gebruikersbetrokkenheid en helpen patronen in gebruikersgedrag te identificeren.

