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

cara mendapatkan baris berbeda dengan nilai maksimal

SELECT id, authorId, answer, votes
FROM (  SELECT id, authorId, answer, votes
        FROM answers
        ORDER BY votes DESC) AS h
GROUP BY authorId

Trik kecil yang rapi ini dibuat berdasarkan GROUP BY untuk mengambil baris pertama dari setiap kasus. Biasanya ini secara default ORDER BY id ASC , tetapi melalui sub kueri ini, baris pertama di setiap authorId dengan votes tertinggi .

Catatan: Seperti yang disebutkan oleh Iain Elder, solusi ini tidak bekerja dengan ONLY_FULL_GROUP_BY aktif dan hanya berfungsi di MySQL. Solusi ini sampai batas tertentu tidak didukung karena kurangnya dokumentasi yang mengonfirmasi perilaku ini. Ini bekerja dengan baik untuk saya dan selalu bekerja dengan baik untuk saya.

Metode ini masih berfungsi pada MySQL di sqlfiddle terbaru .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nama tabel dinamis dalam fungsi prosedur tersimpan

  2. Cara menentukan versi MySQL

  3. mysql pilih nilai baris dinamis sebagai nama kolom, kolom lain sebagai nilai

  4. koneksi MATLAB 7.0 dan MYSQL

  5. mysql_num_rows():argumen yang diberikan bukan sumber hasil MySQL yang valid