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

Menggabungkan SUM(), GROUP_BY() dan LEFT_JOIN() mengembalikan hasil yang salah:bagaimana cara memperbaikinya?

GROUP BY mengelompokkan hasil , bukan baris tabel satu per satu.

Berdasarkan komentar Anda hanya menampilkan baris dalam tabel waktu yang tidak terkait dengan salah satu tag tersebut :

SELECT 
    date_format(from_unixtime(date), '%Y-%m-%d') as myDate,
    ROUND(SUM(time) / 60,1) as hours
FROM `time` h
  LEFT JOIN (
    SELECT DISTINCT te.entity_id
    FROM tag_entity te
      LEFT JOIN tags t on t.tag_id = te.tag_id
    WHERE te.entity_id IS NOT NULL AND t.tag_name IN ('foo', 'bar', 'baz')
  ) g ON h.entity_id = g.entity_id
WHERE g.entity_id IS NULL
group by
    myDate

order by
    hours DESC, myDate ASC


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Logis DAN operator di mySql REGEXP?

  2. Bagaimana cara kerja KASUS MySQL?

  3. Penggunaan COUNT untuk menampilkan catatan berbeda dengan lebih dari 2 kemunculan di MySQL

  4. Mysql COUNT menurut tanggal hanya sebagian dari DATETIME

  5. Laravel 5.3:Kesalahan sintaks atau pelanggaran akses:1463 'jarak' bidang non-pengelompokan digunakan dalam klausa HAVING