Anda menggunakan MAX
, yang merupakan fungsi agregat. Fungsi agregat memiliki efek memperlakukan beberapa baris dalam tabel sebagai grup. Jika Anda tidak melakukan sesuatu yang istimewa, semua baris di seluruh tabel akan digunakan sebagai satu grup besar, dan ketika fungsi agregat seperti MAX
jika ada, semua baris ini akan diringkas menjadi hanya satu baris agregat. Efek kondensasi itu akan terjadi juga untuk fungsi agregat lainnya seperti MIN
, SUM
, GROUP_CONCAT
dan teman-teman (lihat:http://dev. mysql.com/doc/refman/5.1/en/group-by-functions.html
). Anda juga dapat menerapkan pengelompokan tertentu menggunakan GROUP BY
konstruksi, tetapi jika Anda tidak, kemunculan fungsi agregat hanya akan menggabungkan semua baris menjadi satu baris (tetapi pengelompokan ini terjadi setelah menerapkan WHERE
kondisi, jadi hanya baris yang difilter yang digabungkan)
Sekarang, karena efek kondensasi atau 'pengurangan' dari fungsi agregat ini, ada beberapa cara untuk membuat satu nilai dari banyak nilai. Untuk MAX
, cara itu adalah dengan mencantumkan hanya nilai maksimum yang ditemukan untuk semua contoh ekspresi yang Anda berikan sebagai argumen ke MAX
. Tetapi kolom Anda yang lain tidak memiliki fungsi agregat seperti itu. Untuk sebagian besar produk database, kemunculan kolom yang tidak teragregasi maupun yang teragregasi di SELECT
daftar akan menjadi kesalahan. Tetapi MySQL berperilaku salah/berbeda dan hanya mengembalikan salah satu nilai yang tersedia untuk setiap ekspresi non-agregat yang tercantum dalam SELECT
sedikit. Nilai mana yang sesuai dengan mysql - Anda tidak dapat mengandalkan algoritme tertentu.
Dalam banyak kasus, orang ingin melakukan sesuatu dengan "baris apa pun yang memiliki nilai maksimum", dengan kata lain, menemukan baris yang memiliki nilai nilai maksimum, tetapi menggunakan kolom lain dari baris itu tanpa teragregasi. Solusi yang disediakan oleh middaparka melakukan itu, dan ada cara lain untuk mencapainya juga (maksimum google untuk MySQL group-bijaksana). Untuk informasi lebih umum tentang fungsi agregat dan GROUP BY
terkait klausa, Anda bisa melihat -shameless selfplug- artikel saya di sini:http://rpbouman.blogspot.com/2007/05/debunking-group-by-myths.html