SQL är standardspråket för att arbeta med relationsdatabaser. Han har i sin arsenal av många kraftfulla verktyg för att manipulera data lagrade i form av tabeller.
Utan tvekan förmågan att gruppera data medderas provtagning med en viss funktion är ett sådant verktyg. SQL SOM uttalande tillsammans med WHERE kan du definiera villkoren för provet har grupperade data på något sätt.
Först och främst bör det noteras att denna parameterär valfritt och används exklusivt i samband med GROUP BY-parametern. Som du kommer ihåg, används GROUP BY när SELECT använder aggregatfunktioner, och resultaten av deras beräkningar måste erhållas av vissa grupper. Om WHERE tillåter dig att ställa in villkoren för ett urval innan data grupperas innehåller HAVING villkoren för de data som redan finns i grupperna själva. För en bättre förståelse, låt oss ta en titt på exemplet med diagrammet som visas i figuren nedan.
Detta är ett bra exempel, vilket ger en SQL-beskrivning. En tabell ges med en lista över produktnamn, företag som producerar dem och några andra fält. I frågan i övre högra hörnet försöker vi få information om hur många produktnamn varje företag producerar, medan vi bara vill exportera de företag som producerar mer än 2 titlar. GROUP BY-parametern bildade tre grupper som motsvarade namnen på företag, för vilka varav antalet produkter (rader) beräknades. Men parametern HAVDER med sitt tillstånd avbröt en grupp från det resulterande provet, eftersom det inte uppfyllde villkoret. Som ett resultat får vi två grupper, motsvarande företag med antal produkter 5 och 3.
En fråga kan uppstå om varför man ska användaHAR om det finns en WHERE i SQL. Om vi använde WHERE skulle det se på totalt antal rader i tabellen, inte i grupper, och villkoret skulle inte vara meningsfullt i det här fallet. Men ganska ofta existerar de helt i en förfrågan.
I exemplet ovan kan vi se hur, förstDet finns ett urval av uppgifter om namnen på de anställda som anges i parametern WHERE, och då går det grupperade resultatet i GROUP BY ytterligare en check på lönesumman för varje anställd.
Låt oss överväga vissa funktioner i syntaxenHAR SQL. Beskrivningen av denna parameter är ganska enkel. Först, som redan noterat, används den uteslutande i samband med GROUP BY-parametern och anges precis efter det och före ORDER BY, om det finns en i frågan. Det är förståeligt, eftersom det definierar villkoren för den redan grupperade data. För det andra, i den här parameterns tillstånd, kan du bara använda de aggregatfunktioner och fält som anges i GROUP BY-parametern. Alla förhållanden i denna parameter anges exakt på samma sätt som för WHERE.
Som du kan se är inget komplicerat i denna operatörnr. Semantiskt används den på samma sätt som VAR. Det är viktigt att förstå att använda VAR på alla valda data och som har - endast med avseende på de grupper som definieras i parameter GROUP BY. Vi presenterade en omfattande beskrivning för HAVING SQL, vilket är tillräckligt för ett säkert arbete med det.
</ p>