Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memilih Baris Tarikh Maksimum dengan Jumlah Semakan Bukan Sifar dalam SQL?

Bagaimana untuk Memilih Baris Tarikh Maksimum dengan Jumlah Semakan Bukan Sifar dalam SQL?

Barbara Streisand
Barbara Streisandasal
2025-01-08 13:18:441007semak imbas

How to Select Maximum Date Rows with Non-Zero Check Amounts in SQL?

Mengekstrak Entri Terkini dengan Nilai Semak Bukan Sifar daripada Jadual SQL

Panduan ini menunjukkan cara mendapatkan semula rekod terbaharu bagi setiap kumpulan dengan cekap, menapis amaun cek bukan sifar. Mari kita anggap jadual berstruktur seperti ini:

<code>group    date      cash  checks
  1    1/1/2013     0      0
  2    1/1/2013     0      800
  1    1/3/2013     0      700
  3    1/1/2013     0      600
  1    1/2/2013     0      400
  3    1/5/2013     0      200</code>

Pendekatan SQL berikut mencapai ini:

Pertama, kami mencari tarikh maksimum untuk setiap kumpulan dengan nilai checks lebih besar daripada sifar:

<code class="language-sql">SELECT group, MAX(date) AS max_date
FROM table
WHERE checks > 0
GROUP BY group;</code>

Ini menghasilkan:

<code>group    max_date
  2    1/1/2013
  1    1/3/2013
  3    1/5/2013</code>

Seterusnya, kami menyertai keputusan ini kembali ke jadual asal untuk mendapatkan amaun checks yang sepadan:

<code class="language-sql">SELECT t.group, t.date AS max_date, t.checks
FROM table t
INNER JOIN (
  SELECT group, MAX(date) AS max_date
  FROM table
  WHERE checks > 0
  GROUP BY group
) AS a ON a.group = t.group AND a.max_date = t.date;</code>

Pertanyaan akhir ini menghasilkan output yang diingini:

<code>group    max_date    checks
  2    1/1/2013    800
  1    1/3/2013    700
  3    1/5/2013    200</code>

Nota Penting: Menggunakan perkataan terpelihara (seperti date) sebagai nama lajur adalah sangat tidak digalakkan. Ia boleh membawa kepada ralat sintaks SQL dan menjadikan kod anda lebih sukar untuk diselenggara. Pertimbangkan nama yang lebih deskriptif dan jelas untuk lajur anda.

Atas ialah kandungan terperinci Bagaimana untuk Memilih Baris Tarikh Maksimum dengan Jumlah Semakan Bukan Sifar dalam SQL?. 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