खोज…


वाक्य - विन्यास

  • फ़ंक्शन ([ 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;


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow