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

Cara menjumlahkan nilai duplikat dari tabel mysql

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.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MYSQL Masukkan File SQL Besar Berukuran GB

  2. MySQL vs. MariaDB:apa yang perlu Anda ketahui

  3. Kueri yang tidak perlu di Hibernate - MySql

  4. Baca file teks tab delimited ke tabel MySQL dengan PHP

  5. Tutorial yang bagus tentang cara memperbarui database Mysql Anda dengan formulir PHP?