Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memilih Baris Tarikh Maksimum dengan Jumlah Semakan Bukan Sifar dalam 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!