AVG()
In this page:
SELECT AVG(column_name) FROM table_name [WHERE condition];
Average ढूँढना
AVG() function matched rows में एक numeric column का average (mean) value calculate करता है। यह सारी non-NULL values जोड़ता है और उन values की count से divide करता है, एक single representative figure देते हुए।
उदाहरण: Finding the Average
CREATE TABLE orders (id INT, total INT);
INSERT INTO orders VALUES (1, 100), (2, 200), (3, 300);
SELECT AVG(total) AS average_order FROM orders;
Conditions के साथ Averages
आप average करने से पहले एक WHERE clause इस्तेमाल करके specific data target कर सकते हैं। यह सिर्फ आपकी criteria satisfy करने वाली rows के लिए average value calculate करता है, जैसे एक single customer के लिए average order size।
उदाहरण: Averages with Conditions
CREATE TABLE orders (id INT, customer_id INT, total INT);
INSERT INTO orders VALUES (1, 1, 100), (2, 1, 200), (3, 2, 500);
SELECT AVG(total) AS avg_for_customer_1 FROM orders WHERE customer_id = 1;
AVG() में NULL Values
AVG() function sum और जिससे यह divide करता है दोनों count में NULL values को पूरी तरह ignore करता है। NULLs वाली rows sum या dividing count में शामिल नहीं होतीं, इसलिए वे average को zero की ओर नहीं खींचतीं।
उदाहरण: NULL Values in AVG()
CREATE TABLE orders (id INT, total INT);
INSERT INTO orders VALUES (1, 100), (2, NULL), (3, 300);
SELECT AVG(total) AS avg_total FROM orders;
Averages को Round करना
Averages अक्सर कई decimal places वाले numbers return करते हैं, जो एक report में messy दिख सकता है। आप output को decimal places की एक fixed संख्या तक साफ करने के लिए AVG() को ROUND() function के साथ combine कर सकते हैं।
उदाहरण: Rounding Averages
CREATE TABLE orders (id INT, total INT);
INSERT INTO orders VALUES (1, 100), (2, 201), (3, 305);
SELECT ROUND(AVG(total), 2) AS avg_rounded FROM orders;
GROUP BY के साथ AVG()
आप एक overall figure compute करने के बजाय अपने averages को category से group कर सकते हैं। यह आपके database में अलग-अलग categories या departments के लिए mean value एक साथ, एक result set में side by side display करता है।
उदाहरण: AVG() with GROUP BY
CREATE TABLE orders (id INT, department TEXT, total INT);
INSERT INTO orders VALUES (1, 'Sales', 100), (2, 'Sales', 200), (3, 'IT', 500);
SELECT department, AVG(total) AS avg_total FROM orders GROUP BY department;
- यह उम्मीद करना कि
AVGNULLrows को zero मानकर count करेगा, जबकि यह उन्हें ignore करता है और कम rows से divide करता है। - गलत तरीके से round करना, जैसे
ROUND(AVG(x), 2)के बजायAVG(ROUND(x))। - groups के averages का average निकालना, जो सभी rows के average से अलग result देता है।
Chapter Quiz — Complete all 7 topics to unlock
0/7 topics done
Complete these topics first: