MySQL Having Clause
|Having : Aggregate Function का उपयोग कर हम किस भी Table के Data को Group करते हैं यानि की Count, Sum, Avg, Min, Max का उपयोग कर Data को Summerize कर लेते हैं । यदि summerize data पर हमे कोई Filter लगाना हो तब हम Having का उपयोग करते हैं । जैसा हम Row को Filter करने के लिए where का उपयोग करते हैं वैसे ही Group by करने के बाद जो Aggregate Value होती हैं उसको Filter करने के लिए हम Having का उपयोग करते हैं।
Example : जैसे हमारे पास Table हैं जिसमे Customer Name, Item Name, Qty और Rate है ।
- अब इसमे ग्रुप वाले मे Having Clause लगाया हैं जिसमे sum होने के बाद जो वैल्यू आई हैं उस पर Filter लगा हैं ।
- जबकि Where वाले मे पहले ही where से Row Filter हो कर जो वैल्यू आई हैं उसका Sum लगा हैं।
Having Apply on Aggregate Values
जब भी आप कोई भी Aggregate Function लगाएंगे उस पर ही Having Apply होता हैं बिना Aggregate के हम Row Filter करने के लिए Where का उपयोग करते हैं ।
SELECT cust_nm, sum(qty) as tot_qty
FROM `citemmst`
group by cust_nm
having tot_qty > 5
“Having” works the same as “Where” without an aggregate
यदि आप Without Aggregate के having का उपयोग करेंगे तब यह Where जैसे ही कार्य करेगा ।
SELECT cust_nm, item_nm, qty, rate FROM citemmst having qty > 5; //Both are Same
SELECT cust_nm, item_nm, qty, rate FROM citemmst WHERE qty > 5;
Also Apply on Alias Columns
Having को भी Alias Column पर लिख सकते हैं यानि की यह कार्य Alias यानि Short Name पर भी चलता हैं। जैसे की निम्न Example मे tot_qty column alias के द्वारा बना हैं। और हम उस पर भी having से Condition लगा पा रहे हैं।
SELECT sum(qty) as tot_qty FROM `citemmst` having tot_qty > 0
MySQL Aggregate Function के बारे मे जानने के लिए क्लिक करे