Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में शर्त के आधार पर दूसरे कॉलम का योग (SUM) कैसे करें?

MySQL में SUM() एग्रीगेट फ़ंक्शन के साथ GROUP BY क्लॉज का उपयोग करके एक कॉलम के मानों का योग दूसरी कॉलम की शर्त के आधार पर निकाला जा सकता है।

उदाहरण परिदृश्य

कर्मचारी वेतन डेटा को ज्वाइनिंग वर्ष और महीने के अनुसार समूहित करके कुल वेतन निकालना।

तालिका और डेटा

mysql> CREATE TABLE DemoTable (
    -> EmployeeName VARCHAR(20),
    -> JoiningDate DATE,
    -> Salary INT
    -> );
mysql> INSERT INTO DemoTable VALUES 
    -> ('David', '2019-11-02', 400),
    -> ('Robert', '2018-11-25', 100),
    -> ('Bob', '2019-12-14', 600),
    -> ('Carol', '2019-11-03', 300);

क्वेरी: वर्ष और महीने के अनुसार वेतन योग

mysql> SELECT 
    ->     YEAR(JoiningDate) AS JoiningYear,
    ->     MONTH(JoiningDate) AS JoiningMonth,
    ->     SUM(Salary) AS Total,
    ->     GROUP_CONCAT(EmployeeName) AS Names
    -> FROM DemoTable
    -> GROUP BY JoiningYear, JoiningMonth;

परिणाम

+-------------+--------------+-------+-------------+
| JoiningYear | JoiningMonth | Total | Names       |
+-------------+--------------+-------+-------------+
|        2018 |           11 |   100 | Robert      |
|        2019 |           11 |   700 | David,Carol |
|        2019 |           12 |   600 | Bob         |
+-------------+--------------+-------+-------------+

मुख्य अवधारणाएं

  • YEAR(), MONTH() - दिनांक से भाग निकालते हैं
  • GROUP BY - समान मानों वाली पंक्तियों को समूहित करता है
  • SUM() - प्रत्येक समूह के लिए योग 계산 करता है
  • GROUP_CONCAT() - समूह के नामों को जोड़ता है

शर्ती योग (Conditional SUM)

केवल विशिष्ट शर्त पूरी करने वाली पंक्तियों का योग:

SELECT SUM(CASE WHEN Salary > 500 THEN Salary ELSE 0 END) AS HighSalaryTotal
FROM DemoTable;

या WHERE क्लॉज के साथ फ़िल्टर करके फिर GROUP BY करें।

  1. Java में MySQL ResultSet से कॉलम नाम कैसे प्राप्त करें? Java में MySQL ResultSet से कॉलम नाम कैसे प्राप्त करें?

    ResultSetMetaData.getMetaData() का उपयोग करें JDBC में ResultSet से कॉलम नाम प्राप्त करने के लिए getMetaData() मेथड को कॉल करें जो ResultSetMetaData ऑब्जेक्ट लौटाता है। प्रोटोटाइप ResultSetMetaData getMetaData() throws SQLException; मुख्य मेथड्स getColumnCount() — कॉलम की संख्या। getColumnLabel(

  1. MySQL में विशिष्ट कॉलम नाम वाली टेबल कैसे खोजें MySQL में विशिष्ट कॉलम नाम वाली टेबल कैसे खोजें

    information_schema.columns टेबल को क्वेरी करके डेटाबेस में विशिष्ट कॉलम नाम वाली सभी टेबल खोजें। सिंटैक्स SELECT DISTINCT table_name FROM information_schema.columns WHERE column_name LIKE %yourSearchValue% AND table_schema = DATABASE(); उदाहरण: Client वाली कॉलम खोजना SELECT DISTINCT table_name FR

  1. - MySQL में शर्त के साथ कॉलम का योग प्राप्त करना

    अंकगणितीय ऑपरेटर के साथ GROUP BY से श्रेणीवार योग DIV (पूर्णांक विभाजन) ऑपरेटर का उपयोग करके आईडी रेंज के आधार पर समूह बनाकर योग निकाला जा सकता है। तालिका और डेटा (125, 2100), (128, 2900); क्वेरी: ProductId DIV 10 द्वारा समूह योग GROUP BY ProductId DIV 10; परिणाम +------------------+---------