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

Bagaimana memilih baris nilai maksimum di tabel mysql

Anda perlu membaca di group by klausa.

MySQL menjadi jauh lebih permisif dari yang seharusnya, menimbulkan kebingungan dalam prosesnya. Pada dasarnya, setiap kolom tanpa agregat harus dimasukkan dalam group by ayat. Tetapi gula sintaksis MySQL memungkinkan untuk "melupakan" kolom. Ketika Anda melakukannya, MySQL mengeluarkan nilai arbitrer dari set yang dikelompokkan. Dalam kasus Anda, baris pertama dalam himpunan adalah bob , sehingga mengembalikannya.

Pernyataan pertama Anda (menggunakan max() tanpa group by ) tidak benar.

Jika Anda ingin salah satu pengguna tertua, order by age desc limit 1 adalah cara yang benar untuk melanjutkan.

Jika Anda ingin semua pengguna terlama, Anda memerlukan subselect:

SELECT p.* FROM people p WHERE p.age = (select max(subp.age) from people subp);


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

  2. Bekerja dengan Kolom MySQL TIMESTAMP di SQL Server

  3. MySQL:pertahankan zona waktu server atau zona waktu pengguna?

  4. Contoh WAKTU LOKAL – MySQL

  5. Bagaimana cara mengetahui set karakter server default di mysql?