Paano Gamitin ang MySQL HAVING Clause Kung Saan ang Kabuuan ay Mas Higit sa Threshold

Paano Gamitin Ang Mysql Having Clause Kung Saan Ang Kabuuan Ay Mas Higit Sa Threshold



Kapag nagtatrabaho sa MySQL database, madalas kang magkakaroon ng mga pagkakataon kung saan nais mong i-filter ang mga halaga. Bagama't maaari mong gamitin ang sugnay na WHERE, hindi ito palaging gumagana para sa lahat ng pagkakataon. Ang HAVING clause ay ginagamit kapag gusto mong magsagawa ng filter na query gamit ang isang pinagsama-samang function at ilapat ang mga pagpapangkat.

Ang HAVING clause ay umaasa sa GROUP BY clause sa filter nito at ipapatupad ang query batay sa ibinigay na kundisyon. Nililimitahan nito ang filter batay sa kundisyon at ibinabalik lamang ang mga napiling pangkat kung natutugunan nila ang kundisyon. Mayroon kaming mga halimbawa ng paggamit ng MySQL HAVING clause kung saan ang kabuuan ay lumampas sa threshold. Sa ganoong paraan, malalaman mo kung paano ito gamitin sa dulo ng post ngayong araw.







Paano Gamitin ang MySQL HAVING Clause Kung Saan ang Kabuuan ay Mas Higit sa Threshold

Inilapat mo ang MySQL HAVING clause kasama ang GROUP BY clause. Ang syntax nito ay ang mga sumusunod:



SELECT expression1, .. expression_n, aggregate_func (expression) MULA sa table_name GROUP BY expression NA MAY ;

Magagamit mo ang iba't ibang pinagsama-samang function kabilang ang SUM(), COUNT(), MIN(), MAX(), at AVG(). Tandaan na ang anumang expression na hindi ginagamit sa pinagsama-samang function ay dapat banggitin kasama ang GROUP BY clause.



Tulad ng para sa kundisyon, inilalapat ito sa pinagsama-samang mga resulta kung saan tinukoy mo ang threshold na gusto mong suriin sa kundisyon. Halimbawa, maaari mong ilapat ang function na SUM() at i-verify kung ang expression ay nakakatugon sa threshold na 10. Mas mauunawaan namin ang tungkol dito sa mga ibinigay na halimbawa.





Para maunawaan kung paano gumagana ang HAVING clause, gumawa tayo ng sample na database kung saan tayo gagana. Pinangalanan namin ang aming database bilang 'rehistro.'



Gumawa din tayo ng table na pinangalanang 'manggagawa' upang maglaman ng iba't ibang column at uri ng data. Dito, nagtatrabaho kami sa data ng mga manggagawa tulad ng pangalan, oras, petsa ng trabaho, atbp.

Sa pamamagitan ng pagsuri sa paglalarawan ng aming talahanayan, maaari naming kumpirmahin na ang lahat ng mga column ay matagumpay na nalikha.

Ipinasok namin ang mga halaga sa aming talahanayan. Mayroon kaming iba't ibang mga manggagawa na nagtatrabaho sa iba't ibang oras at araw. Gamit ang data na ito, maaari naming ilapat ang HAVING clause kung saan ang kabuuan ay lumampas sa threshold.

Para sa ating unang halimbawa, isaalang-alang natin ang isang kaso kung saan gusto nating hanapin ang mga manggagawa na nagtrabaho nang pinakamaraming oras. Para sa HAVING clause, isama ang sum aggregate function para sa mga oras. Sa sugnay na GROUP BY, pinapangkat namin ang mga row gamit ang name row para makatulong sa pag-uuri ng mga manggagawa na may kabuuang oras na mas malaki kaysa sa threshold.

Kung mayroon kaming threshold para sa kabuuang oras bilang 7, ipapatupad namin ang aming command bilang sumusunod:

PUMILI ng pangalan, SUM(oras) BILANG kabuuang_oras_bawat_tao MULA sa mga manggagawa GROUP BY pangalan MAY kabuuan(oras) > 7;

Sa pamamagitan ng pagpapatupad ng command, nakakakuha tayo ng output na naglalaman ng dalawang row dahil dalawang manggagawa lang ang lumampas sa threshold na tinukoy sa HAVING clause.

Ipagpalagay na gusto nating pag-uri-uriin ang mga departamento upang makita ang mga may mga manggagawa na nagtatrabaho sa mga oras na higit sa isang threshold na 7 oras. Pinipili namin ang departamento, pagkatapos ay gamitin ang SUM aggregate function na may mga oras at pangkatin ang mga row gamit ang expression ng departamento.

Ang aming utos ay ang mga sumusunod:

PUMILI ng departamento, SUM(oras) BILANG kabuuang_oras_bawat_kagawaran MULA sa mga manggagawa GROUP NG departamento NA MAY kabuuan(oras) > 7;

Mula sa mga resulta, maaari naming i-verify na nagawa naming i-filter ang mga row upang maiwan lamang ang mga iyon na may kabuuan ng kanilang mga oras na mas malaki kaysa sa aming threshold.

Katulad nito, kung gusto naming i-filter ang petsa ng trabaho na may pinakamataas na bilang ng mga nagtatrabahong manggagawa na lumampas sa threshold na 10 oras, pipiliin namin ang expression ng workdate. Pagkatapos, ginagamit namin ang function na SUM kasama ang mga oras at pinapangkat ang mga hilera gamit ang petsa ng trabaho.

Ang utos ay ang mga sumusunod:

PUMILI ng petsa ng trabaho, SUM(oras) BILANG pinakamataas na_oras_nagtrabaho MULA sa mga manggagawa GROUP BY workdate MAY kabuuan(oras) > 10;

Pagkatapos isagawa ang command, ipinapakita ng mga resulta na isang workdate lang ang may kabuuan ng kabuuang oras na lumampas sa threshold:

Konklusyon

Ang MySQL HAVING clause ay ginagamit kapag gusto mong magsagawa ng filter na query gamit ang isang pinagsama-samang function. Ito ay pinagsama sa GROUP BY clause upang magsagawa ng mas tiyak na query. Idinetalye ng post na ito ang lahat tungkol sa MySQL HAVING clause kung saan ang kabuuan ay mas malaki kaysa sa threshold. Sa ibinigay na mga halimbawa, naiintindihan mo na ngayon kung paano magtrabaho kasama ang MySQL HAVING clause.