खोज…
वाक्य - विन्यास
- फ़ंक्शन ([ DISTINCT ] अभिव्यक्ति) -DISTINCT एक वैकल्पिक पैरामीटर है
- AVG ([सभी DISTINCT] अभिव्यक्ति)
- COUNT ({[सभी | DISTINCT] अभिव्यक्ति] | *})
- समूहीकरण (<column_expression>)
- मैक्स ([सभी | DISTINCT] अभिव्यक्ति)
- MIN ([सभी | DISTINCT] अभिव्यक्ति)
- SUM ([सभी | DISTINCT] अभिव्यक्ति)
- VAR ([सभी | DISTINCT] अभिव्यक्ति)
OVER ([पार्टीशन_विभाजित] आदेश_बी_क्लॉज) - VARP ([सभी | DISTINCT] अभिव्यक्ति)
OVER ([पार्टीशन_बाइक करें) - STDEV ([सभी | DISTINCT] अभिव्यक्ति)
OVER ([पार्टीशन_विभाजक] ऑर्डर_बाई_क्लॉज) - STDEVP ([सभी | DISTINCT] अभिव्यक्ति)
OVER ([पार्टीशन_विभाजित] आदेश_बी_क्लॉज)
टिप्पणियों
डेटाबेस मैनेजमेंट में एक एग्रीगेट फंक्शन एक ऐसा फंक्शन होता है, जिसमें एक से अधिक महत्वपूर्ण अर्थों या मापों जैसे कि एक सेट, एक बैग या एक सूची बनाने के लिए कुछ मानदंड पर इनपुट के रूप में कई पंक्तियों के मूल्यों को एक साथ रखा जाता है।
MIN returns the smallest value in a given column
MAX returns the largest value in a given column
SUM returns the sum of the numeric values in a given column
AVG returns the average value of a given column
COUNT returns the total number of values in a given column
COUNT(*) returns the number of rows in a table
GROUPING Is a column or an expression that contains a column in a GROUP BY clause.
STDEV returns the statistical standard deviation of all values in the specified expression.
STDEVP returns the statistical standard deviation for the population for all values in the specified expression.
VAR returns the statistical variance of all values in the specified expression. may be followed by the OVER clause.
VARP returns the statistical variance for the population for all values in the specified expression.
अपने
SELECT
विवरण से "संख्यात्मक डेटा का लौटा हुआ कॉलम" के विरुद्ध गणना करने के लिए सकल कार्यों का उपयोग किया जाता है। वे मूल रूप से चयनित डेटा के एक विशेष कॉलम के परिणामों को संक्षेप में प्रस्तुत करते हैं। - SQLCourse2.com
सभी समग्र कार्य NULL मानों को अनदेखा करते हैं।
योग
Sum
फ़ंक्शन समूह में सभी पंक्तियों के मूल्य का योग करता है। यदि क्लॉज द्वारा समूह को छोड़ दिया जाता है तो सभी पंक्तियों को जोड़ दिया जाता है।
select sum(salary) TotalSalary
from employees;
पूरी तनख्वा |
---|
2500 |
select DepartmentId, sum(salary) TotalSalary
from employees
group by DepartmentId;
DepartmentId | पूरी तनख्वा |
---|---|
1 | 2000 |
2 | 500 |
सशर्त एकत्रीकरण
भुगतान तालिका
ग्राहक | भुगतान के प्रकार | रकम |
---|---|---|
पीटर | श्रेय | 100 |
पीटर | श्रेय | 300 |
जॉन | श्रेय | 1000 |
जॉन | नामे | 500 |
select customer,
sum(case when payment_type = 'credit' then amount else 0 end) as credit,
sum(case when payment_type = 'debit' then amount else 0 end) as debit
from payments
group by customer
परिणाम:
ग्राहक | श्रेय | नामे |
---|---|---|
पीटर | 400 | 0 |
जॉन | 1000 | 500 |
select customer,
sum(case when payment_type = 'credit' then 1 else 0 end) as credit_transaction_count,
sum(case when payment_type = 'debit' then 1 else 0 end) as debit_transaction_count
from payments
group by customer
परिणाम:
ग्राहक | credit_transaction_count | debit_transaction_count |
---|---|---|
पीटर | 2 | 0 |
जॉन | 1 | 1 |
औसत ()
कुल फ़ंक्शन AVG () किसी दिए गए एक्सप्रेशन का औसत देता है, आमतौर पर एक कॉलम में संख्यात्मक मान। मान लें कि हमारे पास दुनिया भर के शहरों में जनसंख्या की वार्षिक गणना वाली एक तालिका है। न्यूयॉर्क शहर के रिकॉर्ड नीचे के समान दिखते हैं:
उदाहरण टेबल
शहर का नाम | आबादी | साल |
---|---|---|
न्यू यॉर्क शहर | 8,550,405 | 2015 |
न्यू यॉर्क शहर | ... | ... |
न्यू यॉर्क शहर | 8,000,906 | 2005 |
पिछले दस वर्षों के लिए शहर के नाम, जनसंख्या माप और माप वर्ष युक्त तालिका से न्यूयॉर्क शहर, संयुक्त राज्य अमेरिका की औसत जनसंख्या का चयन करने के लिए:
क्वेरी के
select city_name, AVG(population) avg_population
from city_population
where city_name = 'NEW YORK CITY';
ध्यान दें कि कैसे मापक वर्ष क्वेरी से अनुपस्थित है क्योंकि जनसंख्या समय के साथ औसत हो रही है।
परिणाम
शहर का नाम | avg_population |
---|---|
न्यू यॉर्क शहर | 8,250,754 |
नोट: AVG () फ़ंक्शन मानों को संख्यात्मक प्रकारों में परिवर्तित करेगा। तिथियों के साथ काम करते समय यह ध्यान रखना महत्वपूर्ण है।
सूची का संबंध
इस SO उत्तर का आंशिक श्रेय।
सूची समाकलन प्रत्येक समूह के लिए एक स्ट्रिंग में मानों को जोड़कर एक स्तंभ या अभिव्यक्ति को एकत्रित करता है। प्रत्येक मान को हटाने के लिए एक स्ट्रिंग (या तो खाली या अल्पविराम जब छोड़ा जाता है) और परिणाम में मूल्यों का क्रम निर्दिष्ट किया जा सकता है। हालांकि यह SQL मानक का हिस्सा नहीं है, लेकिन हर प्रमुख रिलेशनल डेटाबेस विक्रेता इसे अपने तरीके से समर्थन करता है।
माई एसक्यूएल
SELECT ColumnA
, GROUP_CONCAT(ColumnB ORDER BY ColumnB SEPARATOR ',') AS ColumnBs
FROM TableName
GROUP BY ColumnA
ORDER BY ColumnA;
Oracle और DB2
SELECT ColumnA
, LISTAGG(ColumnB, ',') WITHIN GROUP (ORDER BY ColumnB) AS ColumnBs
FROM TableName
GROUP BY ColumnA
ORDER BY ColumnA;
PostgreSQL
SELECT ColumnA
, STRING_AGG(ColumnB, ',' ORDER BY ColumnB) AS ColumnBs
FROM TableName
GROUP BY ColumnA
ORDER BY ColumnA;
एस क्यू एल सर्वर
SQL सर्वर 2016 और पहले
(CTE DRY सिद्धांत को प्रोत्साहित करने के लिए शामिल)
WITH CTE_TableName AS (
SELECT ColumnA, ColumnB
FROM TableName)
SELECT t0.ColumnA
, STUFF((
SELECT ',' + t1.ColumnB
FROM CTE_TableName t1
WHERE t1.ColumnA = t0.ColumnA
ORDER BY t1.ColumnB
FOR XML PATH('')), 1, 1, '') AS ColumnBs
FROM CTE_TableName t0
GROUP BY t0.ColumnA
ORDER BY ColumnA;
SQL सर्वर 2017 और SQL Azure
SELECT ColumnA
, STRING_AGG(ColumnB, ',') WITHIN GROUP (ORDER BY ColumnB) AS ColumnBs
FROM TableName
GROUP BY ColumnA
ORDER BY ColumnA;
SQLite
बिना आदेश के:
SELECT ColumnA
, GROUP_CONCAT(ColumnB, ',') AS ColumnBs
FROM TableName
GROUP BY ColumnA
ORDER BY ColumnA;
ऑर्डर करने के लिए एक सबक्वेरी या CTE की आवश्यकता होती है:
WITH CTE_TableName AS (
SELECT ColumnA, ColumnB
FROM TableName
ORDER BY ColumnA, ColumnB)
SELECT ColumnA
, GROUP_CONCAT(ColumnB, ',') AS ColumnBs
FROM CTE_TableName
GROUP BY ColumnA
ORDER BY ColumnA;
गिनती
आप पंक्तियों की संख्या गिन सकते हैं:
SELECT count(*) TotalRows
FROM employees;
TotalRows |
---|
4 |
या प्रति विभाग कर्मचारियों की गणना करें:
SELECT DepartmentId, count(*) NumEmployees
FROM employees
GROUP BY DepartmentId;
DepartmentId | NumEmployees |
---|---|
1 | 3 |
2 | 1 |
आप उस कॉलम / एक्सप्रेशन पर भरोसा कर सकते हैं, जिसके प्रभाव से NULL
मान नहीं गिने जाएंगे:
SELECT count(ManagerId) mgr
FROM EMPLOYEES;
एमजीआर |
---|
3 |
(एक शून्य मान प्रबंधकआईडी स्तंभ है)
आप किसी अन्य फ़ंक्शन के अंदर DISTINCT का उपयोग भी कर सकते हैं जैसे COUNT पर केवल ऑपरेशन को करने के लिए सेट के DISTINCT सदस्यों को खोजने के लिए।
उदाहरण के लिए:
SELECT COUNT(ContinentCode) AllCount
, COUNT(DISTINCT ContinentCode) SingleCount
FROM Countries;
विभिन्न मूल्यों को लौटाएगा। SingleCount केवल व्यक्तिगत महाद्वीपों गणना हो जाने के बाद, जबकि AllCount डुप्लिकेट शामिल होंगे।
ContinentCode |
---|
ओसी |
यूरोपीय संघ |
जैसा |
NA |
NA |
ए एफ |
ए एफ |
ऑलकाउंट: 7 सिंगलकाउंट: 5
मैक्स
स्तंभ का अधिकतम मान ज्ञात करें:
select max(age) from employee;
उपरोक्त उदाहरण employee
तालिका की कॉलम age
के लिए सबसे बड़ा मूल्य लौटाएगा।
वाक्य - विन्यास:
SELECT MAX(column_name) FROM table_name;
मिन
स्तंभ का सबसे छोटा मान ज्ञात करें:
select min(age) from employee;
उपरोक्त उदाहरण employee
तालिका की कॉलम age
के लिए सबसे छोटा मान लौटाएगा।
वाक्य - विन्यास:
SELECT MIN(column_name) FROM table_name;