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

MySQL:Jumlahkan nilai dalam subkueri

Beberapa saran:

  • Bergabung di seasons sekali. Gabung menyebabkan baris dari tabel kiri diduplikasi, sehingga dapat dijumlahkan dua kali dengan sum agregat. Jika ragu, jalankan kueri tanpa group by untuk contoh sekolah.
  • Anda harus menghubungkan subquery ke outer query dengan sesuatu seperti inner_schools.id = outer_schools.id
  • Tapi sejauh yang saya lihat, Anda tidak memerlukan subquery sama sekali

Misalnya:

SELECT  schools.*
,       sum(cashflows.amount) total_branding_cashflow
FROM    schools
JOIN    seasons
ON      seasons.school_id = schools.id 
        and seasons.year = 2010
JOIN    cashflows
ON      cashflows.season_id = seasons.id 
        and cashflow_group_id = 12
GROUP BY 
        schools.id 
HAVING  total_branding_cashflow BETWEEN 50000000 AND 100000000

Untuk beberapa kategori, Anda dapat menggunakan kasus:

SELECT  schools.*
,       sum(case when cashflow_group_id = 1 then cashflows.amount end) total1
,       sum(case when cashflow_group_id = 12 then cashflows.amount end) total12
FROM    schools
JOIN    seasons
ON      seasons.school_id = schools.id 
        and seasons.year = 2010
JOIN    cashflows
ON      cashflows.season_id = seasons.id 
GROUP BY 
        schools.id 



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Susun ulang / atur ulang kunci utama kenaikan otomatis

  2. MySQL - nilai pengurangan otomatis

  3. Impor CSV atau XML ke MySQL

  4. Bagaimana cara mengubah kode yang tidak dapat diedit/dihasilkan di netbeans

  5. JSON_OBJECTAGG() – Buat Objek JSON dari Hasil Kueri di MySQL