SELECT uid
, date
, SUM(USD) AS USD
, Ref_Nr
FROM my_table
GROUP
BY `date`, Ref_Nr, uid;
Dalam hal ini Anda harus memiliki Ref_Nr di grup untuk mendapatkan hasil yang diinginkan. uid, berdasarkan data sampel, tidak diperlukan; tetapi adalah bijaksana untuk selalu mengelompokkan berdasarkan bidang yang tidak teragregasi dari pilih dalam grup menurut. Satu-satunya alasan ini bekerja di mySQL adalah karena mereka memperpanjang grup oleh ; sebagian besar RDBMS lain akan membuat kesalahan tentang bidang non-agregat yang hilang dalam grup oleh. Di versi 5.7.5 dan lebih tinggi fitur ini dinonaktifkan secara default di mana diaktifkan secara default sebelumnya.
Tentang mengapa ref_nr diperlukan dalam grup oleh:
Mesin mySQL yakin Anda hanya ingin mengelompokkan berdasarkan tanggal. Jadi semua ref_NR dijumlahkan dan sistem hanya memilih satu per tanggal untuk ditampilkan; sama untuk uid; tetapi karena mereka semua sama; Anda tidak peduli. Ini dalam kasus ref_nr.
Jadi untuk mengatasi masalah ini, cukup tambahkan ref_nr
ke grup oleh dan di luar baik dari tambahkan UID
. Jadi ada baiknya untuk mengelompokkan berdasarkan semua kolom non-agregat dari pilih ke dalam grup berdasarkan.