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

MySQL mendapatkan catatan tanggal terakhir dari beberapa

Anda bisa gunakan GROUP BY , tetapi penting untuk memahami cara kerjanya.

Saat Anda menggunakan GROUP BY sekelompok baris diciutkan menjadi satu dan apa yang ditampilkan di kolom lain yang tidak digunakan di GROUP BY Anda klausa, ditentukan baik dengan menggunakan fungsi agregat atau baris acak dari grup itu. Anda tidak dapat memastikan untuk mendapatkan baris yang sesuai dengan baris yang ditampilkan dengan memegang MAX() value atau fungsi agregat apa pun yang Anda gunakan. Ini menjadi sangat jelas, ketika Anda melakukan kueri seperti:

SELECT id, MIN(whatever), MAX(whatever), another_column
FROM your_table
GROUP BY id

"another_column" dapat menjadi milik baris yang memegang nilai MIN() atau nilai MAX() atau bahkan ke baris lain yang tidak ditampilkan sama sekali. Di RDBMS selain MySQL sebenarnya dilarang untuk memilih kolom yang tidak menggunakan fungsi agregat atau tidak tercantum dalam GROUP BY klausa, hanya untuk mencegah pengguna membuat kesalahan atau berpikir bahwa mereka mendapatkan hasil yang benar.

Jadi, dalam kasus Anda, Anda sepertinya ingin menampilkan kolom "nilai" juga. Untuk alasan di atas, jawaban juergen_d salah, karena tidak memilih "nilai", dan jika ya, Anda tidak dapat memastikan itu "nilai" yang benar. Jawaban Filipe Silva salah, karena mengelompokkan berdasarkan "nilai". Melakukan ini dalam kasus Anda akan benar-benar mengembalikan seluruh tabel. Jawaban Romesh salah, karena menggunakan dua kali MAX() function akan memberi Anda nilai maksimal, jelas tetapi bukan nilai yang sesuai dengan nilai datetime.

Jadi, bagaimana Anda harus melakukannya? Di sini dijelaskan 3 cara . Pelajari mereka dengan menerapkannya sendiri. Gak susah kok :)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. hapus baris duplikat berdasarkan nilai satu kolom

  2. Hasilkan nomor seri dalam kueri mysql

  3. Hitung median dikelompokkan berdasarkan hari

  4. Kotak centang dicentang dengan pos formulir PHP?

  5. Bagaimana cara kerja MySQL tidak sensitif dan aksen tidak sensitif di UTF-8