КампутарыПраграмаванне

HAVING SQL: апісанне, сінтаксіс, прыклады

SQL уяўляе сабой стандарт мовы для працы з рэляцыйнымі базамі дадзеных. Ён мае ў сваім арсенале мноства магутных інструментаў маніпулявання дадзенымі, якія захоўваюцца ў выглядзе табліц.

Несумненна, магчымасць групаваць дадзеныя пры іх выбарцы па вызначаным прыкмеце з'яўляецца адным з такіх інструментаў. Аператар SQL HAVING нароўні з аператарам WHERE дазваляе вызначаць умовы выбаркі ўжо згрупаваных некаторым чынам дадзеных.

Параметр HAVING SQL: апісанне

Перш за ўсё варта адзначыць, што дадзены параметр з'яўляецца неабавязковым і ўжываецца выключна ў звязку з параметрам GROUP BY. Як вы памятаеце, GROUP BY ўжываецца тады, калі ў SELECT выкарыстоўваюцца агрэгатныя функцыі, і вынікі іх вылічэнняў трэба атрымаць па пэўных групах. Калі WHERE дазваляе задаць ўмовы выбаркі перад тым, як дадзеныя будуць згрупаваны, то HAVING змяшчае ўмовы, якія тычацца дадзеных ўжо непасрэдна ў саміх групах. Для лепшага разумення давайце разбярэм прыклад са схемай, прадстаўлены на малюнку ніжэй.

Гэта выдатны прыклад, які дае HAVING SQL апісанне. Дана табліца з пералікам найменняў прадукцыі, кампаніямі, якія выпускаюць іх, і некаторымі іншымі палямі. У запыце ў верхнім правым куце мы спрабуем атрымаць інфармацыю аб тым, якая колькасць найменняў прадукцыі выпускае кожная кампанія, пры гэтым у вынік мы хочам вывесці толькі тыя кампаніі, якія выпускаюць больш за 2 найменняў. Параметр GROUP BY сфармаваў тры групы, якія адпавядаюць назвах кампаній, для кожнай з якіх палічана колькасць прадукцыі (радкоў). Але параметр HAVING сваім умовай адсек адну групу з выніковай выбаркі, паколькі яна не задавальняла умове. У выніку мы атрымліваем дзве групы, якія адпавядаюць кампаніям з колькасцю прадукцыі 5 і 3.

Можа паўстаць пытанне аб тым, навошта выкарыстоўваць HAVING, калі ў SQL маецца WHERE. Калі б мы выкарыстоўвалі WHERE, то ён бы глядзеў на агульная колькасць радкоў у табліцы, а не па групах, і ўмова не мела б сэнсу ў дадзеным выпадку. Аднак даволі часта яны выдатна ўжываюцца ў адным запыце.

На прыкладзе вышэй мы можам бачыць, як спачатку адбываецца адбор дадзеных па імёнах работнікаў, названым у параметры WHERE, а затым згрупаваных у GROUP BY вынік праходзіць дадатковую праверку па суме заробку для кожнага работніка.

Параметр SQL HAVING: прыклады, сінтаксіс

Разгледзім некаторыя асаблівасці сінтаксісу HAVING SQL. Апісанне дадзенага параметру даволі простае. Па-першае, як ужо адзначалася, ён выкарыстоўваецца выключна ў звязку з параметрам GROUP BY і паказваецца адразу ж пасля яго і перад ORDER BY, калі такі маецца ў запыце. Яно і зразумела, бо HAVING вызначае ўмовы для ўжо згрупаваных дадзеных. Па-другое, ва ўмове гэтага параметру можна выкарыстоўваць толькі агрэгатныя функцыі і палі, названыя ў параметры GROUP BY. Усе ўмовы ў дадзеным параметры паказваюцца сапраўды такім жа чынам, як і ў выпадку з WHERE.

заключэнне

Як бачыце, нічога складанага ў дадзеным аператары няма. Семантычна ён выкарыстоўваецца так жа, як і WHERE. Важна зразумець тое, што WHERE выкарыстоўваюць адносна ўсіх выбіраемых дадзеных, а HAVING - толькі ў адносінах да груп, вызначаных у параметры GROUP BY. Мы прадставілі вычарпальнае для HAVING SQL апісанне, якога дастаткова для ўпэўненай працы з ім.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 be.delachieve.com. Theme powered by WordPress.