Rumah > pangkalan data > tutorial mysql > Bagaimana Mencari Baris Pertama Di Mana Jumlah Tunai Terkumpul Melebihi Had dalam MySQL?

Bagaimana Mencari Baris Pertama Di Mana Jumlah Tunai Terkumpul Melebihi Had dalam MySQL?

Linda Hamilton
Lepaskan: 2024-11-04 05:31:02
asal
432 orang telah melayarinya

How to Find the First Row Where Cumulative Cash Sum Exceeds a Limit in MySQL?

Mendapatkan Kembali Baris Pertama dengan Jumlah Tunai Sebelumnya Melebihi Had Menggunakan MySQL

Definisi Masalah:

Memandangkan jadual dengan id lajur dan wang tunai, tugasnya adalah untuk mendapatkan semula baris pertama di mana jumlah terkumpul wang tunai dalam baris sebelumnya melebihi nilai yang ditentukan. Sebagai contoh, jika had yang diingini ialah 500, fungsi harus mengembalikan baris ketiga di mana jumlah terkumpul wang tunai mencapai lebih 500.

Penyelesaian MySQL:

Semasa mencuba untuk membandingkan agregat dalam klausa WHERE (cth., WHERE SUM(tunai) > 500) terbukti tidak berjaya, klausa HAVING boleh digunakan untuk membandingkan agregat. Walau bagaimanapun, klausa HAVING memerlukan klausa GROUP BY yang sepadan.

Untuk menyelesaikannya, pertanyaan berikut boleh digunakan:

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
Salin selepas log masuk

Pertanyaan ini menggunakan subkueri untuk mengira jumlah terkumpul tunai untuk setiap baris, yang disimpan dalam alias lajur running_total. Dengan merujuk lajur running_total dalam klausa WHERE, baris pertama yang jumlah kumulatif melebihi had yang ditentukan boleh diambil semula. Klausa LIMIT 1 memastikan bahawa hanya baris pertama tersebut dikembalikan.

Atas ialah kandungan terperinci Bagaimana Mencari Baris Pertama Di Mana Jumlah Tunai Terkumpul Melebihi Had dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan