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

Bagaimana saya bisa MEMILIH baris dengan MAX (Nilai kolom), DISTINCT dengan GANDA kolom dalam SQL

Metode tipikal menggunakan subquery yang berkorelasi:

select t.*
from t
where t.date = (select max(t2.date) from t t2 where t2.env = t.env);

Mungkin metode yang sedikit lebih baik adalah:

select t.*
from t
where t.id = (select t2.id
              from t t2 
              where t2.env = t.env
              order by t2.date desc, t2.id desc
              limit 1
             );

Ini sedikit lebih baik karena (1) id mungkin adalah kunci utama, jadi kecocokannya lebih cepat; dan (2) jika ada beberapa baris pada tanggal yang sama, maka hanya satu baris yang dikembalikan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Gunakan FullCalendar tanpa tanggal

  2. Menyimpan XML dalam Database untuk Konten Fleksibel

  3. Transpos Kueri Besar

  4. mysql> gunakan mysql; tapi ... ERROR 1044 (42000):Akses ditolak untuk pengguna '' @ 'localhost' ke database 'mysql'

  5. pertanyaan MYSQL PADA DUPLICATE KEY UPDATE