Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Menghitung jumlah baris yang bergabung di gabungan kiri

Bagaimana dengan yang seperti ini:

SELECT m.MESSAGEID, sum((case when mp.messageid is not null then 1 else 0 end)) FROM MESSAGE m
LEFT JOIN MESSAGEPART mp ON mp.MESSAGEID = m.MESSAGEID
GROUP BY m.MESSAGEID;

Fungsi COUNT() akan menghitung setiap baris, meskipun memiliki null. Menggunakan SUM() dan CASE, Anda hanya dapat menghitung nilai bukan nol.

EDIT:Versi yang lebih sederhana diambil dari komentar teratas:

SELECT m.MESSAGEID, COUNT(mp.MESSAGEID) FROM MESSAGE m
LEFT JOIN MESSAGEPART mp ON mp.MESSAGEID = m.MESSAGEID
GROUP BY m.MESSAGEID;

Semoga membantu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 12c Fitur Usang

  2. Manfaat Mempelajari Sistem DB Baru

  3. REGEXP_INSTR() Fungsi di Oracle

  4. cara mengatur kolom kenaikan otomatis dengan pengembang sql

  5. Hasilkan Prosedur PL/SQL Online untuk Mengimpor Data di Tabel Oracle