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

Hitung Kemunculan Lapangan saat sedang Dikelompokkan Oleh 2

Kueri Anda tidak terkait dengan data sampel Anda; namun Anda tampaknya menginginkan agregasi dan peringkat. Di MySQL 8.0, Anda akan melakukan:

select
    row_number() over(order by count(*) desc) rn,
    order_id,
    count(*) items_in_order
from data
group by order_id
order by rn

Saya beri nama kolom pertama rn (untuk peringkat ):Saya menemukan id membingungkan di sini, karena Anda sudah memiliki kolom dengan nama itu di tabel.

Di versi sebelumnya, satu opsi menggunakan variabel sesi alih-alih row_number() :

select @rn := @rn + 1 rn, order_id, items_in_order
from (
    select order_id, count(*) items_in_order
    from data
    group by order_id
    order by items_in_order desc
) t
cross join (select @rn := 0) r
order by items_in_order desc



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kesalahan:ER_WRONG_VALUE_COUNT_ON_ROW:Jumlah kolom tidak cocok dengan jumlah nilai pada baris 1

  2. Proyek Laravel ERR_EMPTY_RESPONSE

  3. MySQL:Bagaimana cara mengambil data dengan gabungan kiri jika kolom berisi banyak id?

  4. Memasukkan data ke MySQL dari array multidimensi di php

  5. Menggunakan pernyataan IF di MySQL untuk memperbarui atau menyisipkan tanpa Prosedur Tersimpan?