Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menggunakan Fungsi SUM() untuk Perbandingan dalam Klausa MySQL WHERE?

Bagaimanakah Saya Boleh Menggunakan Fungsi SUM() untuk Perbandingan dalam Klausa MySQL WHERE?

DDD
DDDasal
2024-11-04 06:07:29664semak imbas

How Can I Use the SUM() Function for Comparisons in a MySQL WHERE Clause?

Menggunakan Fungsi MySQL SUM() dalam Klausa WHERE

Dalam MySQL, menggunakan fungsi SUM() dalam klausa WHERE secara langsung adalah terhad . Sebaliknya, anda boleh menggunakan klausa HAVING bersama-sama dengan fungsi SUM().

WHERE SUM(tunai) > Isu 500:
Pertanyaan yang disediakan menggunakan WHERE SUM(tunai) > 500 tidak akan berfungsi kerana fungsi agregat seperti SUM() tidak boleh digunakan untuk perbandingan dalam klausa WHERE.

Klausa HAVING:
Untuk menggunakan fungsi agregat sebagai perbandingan, anda perlu menggunakan klausa HAVING. Klausa HAVING digunakan dengan klausa GROUP BY untuk mengekang keputusan pengelompokan.

Contoh Pertanyaan:
Untuk mencari baris pertama di mana jumlah tunai berjalan melebihi 500:

<code class="sql">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;</code>

Penjelasan:

  • Subkueri memperoleh jumlah larian untuk setiap baris.
  • Alias ​​lajur untuk jumlah larian boleh dirujuk dalam klausa WHERE.
  • Pertanyaan disusun mengikut ID dan terhad kepada baris pertama untuk mendapatkan hasil yang diingini.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Fungsi SUM() untuk Perbandingan dalam Klausa MySQL WHERE?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn