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

Nomor baris untuk hasil kueri yang dikelompokkan berdasarkan kolom

Ini seharusnya cukup mudah.

SELECT (CASE WHEN @fk <> fk_id THEN @row:=1 ELSE @row:[email protected] + 1 END) AS ordinality, 
       @fk:=fk_id, rcv_date
FROM   (SELECT @row:=0) AS r, 
       (SELECT @fk:=0) AS f, 
       (SELECT fk_id, rcv_date FROM files ORDER BY fk_id, rcv_date) AS t

Saya memesan dengan fk_id pertama untuk memastikan semua kunci asing Anda bersatu (bagaimana jika mereka tidak benar-benar ada di tabel?), maka saya melakukan pemesanan pilihan Anda, yaitu dengan rcv_date . Kueri memeriksa perubahan dalam fk_id dan jika ada, maka variabel nomor baris diatur ke 1, atau variabel tersebut bertambah. Ini ditangani dalam pernyataan kasus. Perhatikan bahwa @fk:=fk_id dilakukan setelah pemeriksaan kasus lain itu akan mempengaruhi nomor baris.

Sunting: Perhatikan saja solusi Anda sendiri yang kebetulan sama dengan yang saya dapatkan. Pujian! :)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa cara terbaik untuk memeriksa apakah ada sesuatu dengan PDO

  2. MySQL mengambil selamanya 'mengirim data'. Permintaan sederhana, banyak data

  3. Laravel 8.x Tempat Pencarian Json Di Array

  4. Apa artinya melarikan diri dari string?

  5. PENGECUALIAN:Operasi yang tidak didukung:konstruktor RawSocket (Dart dengan sqljocky5:^2.2.1)