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

gunakan mysql SUM() dalam klausa WHERE

Anda hanya dapat menggunakan agregat untuk perbandingan dalam klausa HAVING:

GROUP BY ...
  HAVING SUM(cash) > 500

HAVING klausa mengharuskan Anda untuk mendefinisikan klausa GROUP BY.

Untuk mendapatkan baris pertama di mana jumlah semua uang sebelumnya lebih besar dari nilai tertentu, gunakan:

SELECT y.id, y.cash
  FROM (SELECT t.id,
               t.cash,
               (SELECT SUM(x.cash)
                  FROM TABLE x
                 WHERE x.id <= t.id) AS running_total
         FROM TABLE t
     ORDER BY t.id) y
 WHERE y.running_total > 500
ORDER BY y.id
   LIMIT 1

Karena fungsi agregat terjadi dalam subkueri, alias kolom untuknya dapat dirujuk dalam klausa WHERE.



  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 di Cloud - Migrasi Online dari Amazon RDS ke Server Anda sendiri:Part2

  2. Dasar-dasar Kunci Asing di MySQL?

  3. MySQL Query Untuk Mendapatkan Produk Terlaris

  4. Bagaimana cara menghindari tanda persen literal ketika opsi NO_BACKSLASH_ESCAPES diaktifkan?

  5. Cara Menggabungkan String di MySQL dengan CONCAT()