Door
Dennis WhoCares
op 15-10-2016 19:59
gewijzigd op 15-10-2016 20:27
4.458 views
SELECT p_category as mainCat, MAX(p_qty)
FROM products
GROUP BY p_category
geeft mij wel resultaat, maar hier wil ik eigenlijk nog waar MAX(p_qty) > 4.
Als ik dit in WHERE zet krijg ik foutmeldingen :-( ok als ik in SELECT MAX(p_qty) as quantity, en in de WHERE quantity > 4, krijg ik ook foutmeldingen.
Hoe ga ik hier het beste mee om? Zonder het met php nog eens na te lopen of de qty wel groter is dan 4
Databases zijn slim (nouja, de betere databases zijn slim) en kunnen je query optimaliseren omdat ze al een idee hebben van hoeveel records er in de tabel staan per waarde van p_category, dus ja, het kan heel goed zijn dat een HAVING sneller is dan een subquery, ookal doen geven ze hetzelfde resultaat.
Maar meten is weten en gokken wordt bokken, dus gebruik het EXPLAIN commando om te meten hoe lang je query er precies over doet en wat de database intern allemaal uitvlooit om het resultaat te berekenen. Daarmee komen ook meteen ontbrekende indexes aan het licht, evenals gebrekken aan RAM etc.