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

Jumlah MySQL, hitung dengan grup oleh dan gabung

Upaya pertama Anda sangat dekat. Tapi setiap post_id dikalikan dengan jumlah kecocokan di insights , jadi Anda perlu menggunakan DISTINCT :

select type_name, count(distinct p.post_id), sum(likes), sum(comments)
from types t
left join posts p on t.type_id = p.post_type
left join insights i on p.post_id = i.post_id
group by type_name;

Atau, Anda dapat mengelompokkan dengan subkueri yang menggabungkan semua wawasan untuk pos yang sama:

select type_name, count(*), sum(likes), sum(comments)
from types t
left join posts p on t.type_id = p.post_type
left join (select post_id, sum(likes) likes, sum(comments) comments
           from insights
           group by post_id) i on p.post_id = i.post_id
group by type_name;

FIDDLE



  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 mengonversi varchar ke tanggal

  2. Bagaimana Operator LIKE Bekerja di MySQL

  3. Temukan gaji maks dan maks kedua untuk tabel karyawan MySQL

  4. Dimana meja yang menyimpan Harga Spesial di Magento?

  5. Entity Framework C# Sisipkan Data masalah penyandian rusia