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

PILIH kueri mengembalikan 1 baris dari setiap grup

Ada banyak alternatif untuk menyelesaikan ini, salah satu yang saya sarankan adalah bergabung dengan subquery yang secara terpisah mendapatkan ID terbaru (dengan asumsi bahwa kolomnya adalah AUTO_INCREMENT ed ) untuk setiap store_ID .

SELECT  a.*
FROM    tableName a
        INNER JOIN
        (
            SELECT  store_ID, MAX(ID) max_ID
            FROM    tableName
            GROUP BY store_ID
        ) b ON a.store_ID = b.store_ID AND
                a.ID = b.max_ID

untuk kinerja yang lebih baik, pastikan untuk memiliki indeks pada kolom berikut:ID dan store_id .

PERBARUI 1

jika Anda ingin memiliki batas untuk setiap catatan, gunakan ini di bawah ini,

SELECT ID, product_Name, store_ID
FROM   tableName a
WHERE
  (
     SELECT COUNT(*) 
     FROM   tableName b
     WHERE  b.store_ID = a.store_ID AND b.ID >= a.ID
  ) <= 2;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. #1055 - Ekspresi daftar SELECT tidak ada dalam klausa GROUP BY dan berisi kolom yang tidak diagregasi, ini tidak kompatibel dengan sql_mode=only_full_group_by

  2. Prosedur tersimpan MySQL vs fungsi, mana yang akan saya gunakan kapan?

  3. SQL Query Untuk Menghapus Tabel Di MySQL

  4. Cara Menampilkan Proses MySQL

  5. Haruskah koneksi database tetap terbuka sepanjang waktu atau hanya dibuka saat dibutuhkan?