Namen te vadnice je pomagati razumeti in uporabljati klavzulo HAVING v stavkih SQL.
Potopimo se.
SQL Having klavzula
Klavzula HAVING v SQL vam omogoča, da nastavite pogoj v skupinah, definiranih v klavzuli SQL GROUP BY.
Za organiziranje podatkov v različne particije v SQL lahko uporabite klavzulo GROUP BY. Na skupinah lahko izvajate več dejanj, na primer združevalne funkcije.
S klavzulo HAVING lahko podate pogoj za skupine. Vendar pa lahko uporabite klavzulo HAVING brez parjenja GROUP BY. V takem primeru se klavzula HAVING obnaša podobno kot klavzula WHERE, ki vam omogoča iskanje ujemajočih se zapisov.
Naslednji delček kode definira sintakso za klavzulo SQL HAVING:
IZBERI stolpceFROM ime_tabele
GROUP BY group_by_clause
HAVING skupinski_pogoj;
1. primer: uporaba klavzule HAVING s filmsko tabelo
Da bi najbolje razumeli, kako uporabiti klavzulo HAVING v SQL, bomo uporabili vzorčno bazo podatkov, ki jo ponuja MySQL.
Za več informacij si lahko ogledate naslednji vir:
Za to ilustracijo bomo uporabili filmsko tabelo iz zbirke podatkov sakila, ki je na voljo na dani povezavi.
Najdemo lahko filme z oceno za izposojo 2,99 in več z uporabo klavzule HAVING, kot je prikazano v naslednji poizvedbi:
izberite naslov, leto_izida, ocena, stopnja_najemaiz filma
skupina po ocenah
ob najemnini > = 2,99 ;
Končna tabela je naslednja:
V tem primeru poizvedba najde 4 ujemajoče se zapise, kot je prikazano v prejšnji tabeli.
Primer 2: Uporaba klavzule HAVING z agregatno funkcijo
Uporabimo lahko tudi funkcijo sum() za določitev filma z vsoto ocen filma z določenim razponom rental_rate.
izberite naslov, leto_izida, ocena, najemnina, vsota ( najemnina )iz filma
skupina po ocenah
imeti vsota ( najemnina ) med 500 in 600 ;
V tem primeru mora poizvedba vrniti tabelo na naslednji način: