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

MySQL में CASE WHEN और GROUP BY से कई पंक्तियों को एक पंक्ति में कैसे संयोजित करें?


पिवट/क्रॉस-टैब पैटर्न

select 
  company_name,
  max(case when country_name='US' then employee_name end) as US_Employee_Name,
  max(case when country_name='UK' then employee_name end) as UK_Employee_Name,
  max(case when country_name='AUS' then employee_name end) as AUS_Employee_Name
from demo68
group by company_name;

उदाहरण डेटा

mysql> create table demo68 (id int not null auto_increment primary key, company_name varchar(50), employee_name varchar(50), country_name varchar(50));
mysql> insert into demo68(company_name,employee_name,country_name) values('Google','John','US'), ('Google','Bob','UK'), ('Google','David','AUS');

परिणाम: एक कंपनी, एक पंक्ति, देशवार कर्मचारी

+--------------+------------------+------------------+-------------------+
| company_name | US_Employee_Name | UK_Employee_Name | AUS_Employee_Name |
+--------------+------------------+------------------+-------------------+
| Google       | John             | Bob              | David             |
+--------------+------------------+------------------+-------------------+

तर्क: CASE WHEN शर्त पूरी होने पर नाम देता है, नहीं तो NULL। MAX() NULL को अनदेखा करके नाम चुन लेता है।


  1. - MySQL में एकाधिक टेक्स्ट रिकॉर्ड को एक में कैसे संयोजित करें?

    MySQL में GROUP_CONCAT() फ़ंक्शन का उपयोग करके एकाधिक पंक्तियों के टेक्स्ट मानों को एक स्ट्रिंग में जोड़ा जा सकता है। कस्टम विभाजक भी निर्दिष्ट किया जा सकता है। सिंटैक्स GROUP_CONCAT(column_name [SEPARATOR separator_string]) उदाहरण तालिका बनाएं और शब्द डालें: mysql> CREATE TABLE DemoTable (Valu

  1. - MySQL में SUM() और MONTH() से वर्तमान माह के रिकॉर्ड का योग प्राप्त करें

    SUM() एग्रीगेट फ़ंक्शन के साथ MONTH() और YEAR() फ़िल्टर का उपयोग करके वर्तमान माह के रिकॉर्ड का योग प्राप्त करें। टेबल बनाएं mysql> CREATE TABLE DemoTable1889 (DueDate DATE, Amount INT); डेटा डालें mysql> INSERT INTO DemoTable1889 VALUES(2019-12-11, 500), (2019-11-11, 1000), (2018-12-04, 700

  1. - MySQL में अगली पंक्ति पेजिनेशन कैसे चुनें?

    LIMIT क्लॉज LIMIT offset, row_count से पेजिनेशन लागू करें। उदाहरण insert into demo40(name) values(Chris), (David), (Mike), (Sam), (Carol), (bob); 5वीं और 6वीं पंक्ति प्राप्त करना (offset=4, count=2) select * from demo40 limit 4,2; +----+-------+ | id | name | +----+-------+ | 5 | Carol | | 6