Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Kelompokkan berdasarkan Hitungan (Teratas 5) &Hitungan (Semua Lainnya)

Di MySQL, mungkin cara termudah untuk mengekspresikan ini adalah dengan menggunakan tabel sementara:

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 kolom di tabel sementara menambahkan nomor baris ke setiap baris. Dalam database nyata lainnya, Anda akan menggunakan row_number() fungsi, tetapi MySQL tidak mendukungnya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL Pilih Where In Many to Many

  2. Algoritma pembuatan jadwal efisien SQL

  3. ORDER BERDASARKAN abjad terlebih dahulu kemudian ikuti dengan nomor

  4. Apa cara paling efisien untuk memilih n baris terakhir dalam tabel tanpa mengubah struktur tabel?

  5. Apa string koneksi driver MySQL JDBC?