Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Memilih Baris Tarikh Maks dengan Cekap dengan Nilai Semak Bukan Sifar dalam SQL?

Bagaimana untuk Memilih Baris Tarikh Maks dengan Cekap dengan Nilai Semak Bukan Sifar dalam SQL?

Susan Sarandon
Lepaskan: 2025-01-08 13:36:42
asal
241 orang telah melayarinya

How to Efficiently Select Max Date Rows with Non-Zero Check Values in SQL?

Mengekstrak Baris Tarikh Maksimum dengan Jumlah Semakan Bukan Sifar dalam SQL

Contoh ini menunjukkan cara memilih kumpulan unik dengan tarikh terbaharu dan nilai semakan bukan sifar daripada set data yang mengandungi kumpulan, tarikh dan nilai kewangan (tunai dan cek).

Percubaan awal menggunakan pertanyaan ini terbukti tidak mencukupi:

<code class="language-sql">SELECT group, MAX(date), checks
FROM table
WHERE checks > 0
GROUP BY group
ORDER BY group DESC</code>
Salin selepas log masuk

Pertanyaan ini mengembalikan semua tarikh dan nilai semak untuk setiap kumpulan, bukan hanya data dari baris dengan tarikh maksimum.

Penyelesaian melibatkan pendekatan dua langkah:

Pertama, kami mengenal pasti tarikh maksimum untuk setiap kumpulan dengan nilai semakan bukan sifar:

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

Kemudian, kami menyertai set keputusan ini kembali ke jadual asal untuk mendapatkan semula checks (dan lajur lain yang berkaitan) yang sepadan untuk baris tarikh maksimum tersebut:

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

Gabungan dalam ini memastikan hanya baris yang sepadan dengan kedua-dua tarikh maksimum dan kriteria semakan bukan sifar dimasukkan dalam output akhir.

Amalan Terbaik: Menggunakan perkataan deskriptif dan tidak dikhaskan untuk nama lajur (cth., group_id bukannya group) meningkatkan kebolehbacaan kod dan mengurangkan risiko ralat.

Atas ialah kandungan terperinci Bagaimana untuk Memilih Baris Tarikh Maks dengan Cekap dengan Nilai Semak Bukan Sifar dalam SQL?. 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