PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bagaimana cara melakukan SUM di dua tabel yang tidak terkait?

SELECT (SELECT SUM(table1.col1) FROM table1) AS sum_1,
       (SELECT SUM(table2.col1) FROM table2) AS sum_2;

Anda juga dapat menulisnya sebagai:

SELECT t1.sum_c1, t1.sum_c2, t2.sum_t2_c1
FROM
(
     SELECT SUM(col1) sum_c1,
            SUM(col2) sum_c2
 FROM table1
) t1
FULL OUTER JOIN
(
     SELECT SUM(col1) sum_t2_c1
     FROM table2
) t2 ON 1=1;

FULL JOIN digunakan dengan kondisi yang tidak berguna sehingga salah satu subquery tidak dapat menghasilkan hasil (kosong) tanpa menyebabkan kueri yang lebih besar tidak memiliki hasil.

Saya tidak berpikir kueri seperti yang Anda tulis akan menghasilkan hasil yang Anda harapkan, karena melakukan CROSS JOIN antara table1 dan table2, yang akan mengembang setiap SUM dengan jumlah baris di tabel lain. Perhatikan bahwa jika salah satu table1/table2 kosong, CROSS JOIN akan menyebabkan X baris sebanyak 0 baris mengembalikan hasil kosong.

Lihat SQL Fiddle ini dan bandingkan hasilnya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana pengguna dapat saling menyukai posting menggunakan sekuel postgres nodejs?

  2. PostgreSQL:Hapus pasangan kunci/nilai dari array dengan objek json

  3. Tips &Trik untuk Menavigasi Komunitas PostgreSQL

  4. Menggunakan jsonb (PostgreSQL), bagaimana cara mengambil item dengan nilai tertentu yang disimpan sebagai array?

  5. hari berturut-turut di sql