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

Pilih n baris per grup di mysql

Anda memiliki banyak solusi dan salah satunya adalah menggunakan left join dan Anda dapat memeriksanya

select t1.* from test t1
left join test t2
on t1.type = t2.type and t1.price > t2.price
group by t1.variety
having count(*) <=1
order by t1.type,t1.price

Logikanya adalah melakukan join kiri dengan tabel yang sama di mana jenisnya sama dan harganya lebih rendah dari yang lain dan akhirnya melakukan group by kurikulumnya dan kemudian gunakan count() dengan harus menunjukkan jumlah catatan yang Anda inginkan per grup. Perhatikan bahwa di mysql Anda memiliki kebebasan untuk memiliki grup demi klausa seperti pada kueri di atas dengan cara yang sewenang-wenang yang mungkin gagal di RDBMS lain.

Sekarang karena Anda memiliki beberapa kebingungan tentang alias , pada contoh di atas nama tabelnya adalah test dan di dalam kueri nama semu diberikan sebagai t1 . Juga ketika Anda melakukan self join, penting bagi Anda untuk memberikan nama alias unik untuk tabel yang sama. Pada contoh di atas tabel yang sama digabungkan dengan dirinya sendiri sehingga kita perlu memastikan bahwa kita memberikan beberapa nama alias untuk tabel.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tingkatkan kinerja pada permintaan pencarian teks lengkap MySQL

  2. JSON menyandikan hasil MySQL

  3. Mengubah nama kunci asing yang dihasilkan di Hibernate

  4. MySQL mengkonversi antara dua format tanggal

  5. Cara mengimpor dump MySQL dari baris perintah DENGAN menimpa