Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

(शीर्ष 5) और (अन्य सभी) की संख्या के आधार पर समूह

MySQL में, इसे व्यक्त करने का शायद सबसे आसान तरीका एक अस्थायी तालिका का उपयोग करना है:

create temporary table temp as (
    id int not null auto_increment,
    CaseLabel varchar(255),
    CasesResolved int
);

insert into temp(CaseLabel, CasesResolved)
    SELECT deskcases.Labels, COUNT(deskcases.Labels)AS CaseCount
    FROM deskcases
    WHERE deskcases.Labels NOT LIKE ''
          AND deskcases.Labels NOT LIKE '%SPAM%'
          AND deskcases.Labels NOT LIKE '%Online Orders%'
          AND deskcases.Labels NOT LIKE '%Internal SPAM%'
          AND deskcases.`Case Status` LIKE 'Resolved'
          AND deskcases.`Resolved At` > CURDATE()- INTERVAL 7 DAY
    GROUP BY deskcases.Labels
    ORDER BY CaseCount DESC;

select (case when id <= 5 then caselabel else 'Other' end),
       SUM(casesResolved) as CasesResolved
from temp
group by (case when id <= 5 then caselabel else 'Other' end)
order by MAX(id) desc

id अस्थायी तालिका में कॉलम प्रत्येक पंक्ति पर एक पंक्ति संख्या जोड़ता है। किसी अन्य वास्तविक डेटाबेस में, आप row_number() . का उपयोग करेंगे फ़ंक्शन, लेकिन MySQL इसका समर्थन नहीं करता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. क्लाउड 9 आईडीई डेटाबेस से कनेक्ट नहीं हो सकता

  2. कोडइग्निटर - एक फॉर्म के माध्यम से एक छवि अपलोड करना, छवि के स्थान को डेटाबेस में संग्रहीत करना

  3. विभिन्न सर्वरों पर दो डेटाबेस पर MySQL लेनदेन

  4. जावा ऐप, MySQL कनेक्शन को मारने के बाद थ्रेड हैंग हो जाता है

  5. Laravel Eloquent में कुछ फ़ील्ड्स का चयन कैसे करें?