De HAVING-clausule in MariaDB wordt gebruikt om voorwaarden te stellen aan gegroepeerde data die is gefilterd met de GROUP BY-clausule. Het is vergelijkbaar met een WHERE-clausule, maar het werkt op het resultaat van de groepering.
Laten we een voorbeeld nemen van een tabel genaamd ‘Orders’:
BestelId | KlantId | Bedrag |
————— | ————- | ———— |
1 | 101 | 100 |
2 | 102 | 200 |
3 | 103 | 150 |
4 | 101 | 300 |
5 | 103 | 200 |
6 | 102 | 100 |
Nu willen we de totale bestelbedragen per klant opvragen, maar alleen voor klanten waarvan het totale bestelbedrag meer dan 200 is. Hier is hoe we dit kunnen doen met de HAVING-clausule:
```
SELECT KlantId, SUM AS TotaleBedrag
FROM Orders
GROUP BY KlantId
HAVING TotaleBedrag > 200;
```
In dit voorbeeld is `GROUP BY KlantId` het groeperen van gegevens op basis van de KlantId, en `SUM AS TotaleBedrag` berekent de som van het Bedrag voor elke groep. De HAVING-clausule `HAVING TotaleBedrag > 200` filtert vervolgens de resultaten naar alleen die groepen waarvan het totale bedrag groter is dan 200.