Dalam mengurus data merentas berbilang entri, selalunya perlu untuk mengenal pasti dan mendapatkan semula rekod yang memegang cap masa terbaharu untuk kunci yang diberikan. Walaupun pendekatan mudah mungkin melibatkan pengumpulan mengikut kunci dan susunan mengikut cap masa maksimum, ini boleh menyebabkan ralat yang berkaitan dengan medan yang tidak muncul dalam kumpulan mengikut klausa.
Untuk mengatasi isu ini, struktur pertanyaan alternatif menawarkan penyelesaian yang berdaya maju:
SELECT sensorID, timestamp, sensorField1, sensorField2 FROM sensorTable s1 WHERE timestamp = ( SELECT MAX(timestamp) FROM sensorTable s2 WHERE s1.sensorID = s2.sensorID ) ORDER BY sensorID, timestamp;
Pertanyaan ini pada asasnya sepadan dengan setiap baris dalam sensorTable s1 dengan rakan sejawatannya yang dicap masa terkini dalam Jadual sensor s2. Klausa WHERE secara berkesan menapis semua baris kecuali baris yang mempunyai cap masa maksimum untuk setiap kunci, memastikan data yang dipilih adalah yang paling terkini. Dengan mengumpulkan hasil mengikut sensorID dan mengisih mengikut cap masa, pertanyaan mengembalikan satu baris dengan cap masa terkini untuk setiap kunci, bersama-sama dengan medan tambahan yang dikehendaki.
Atas ialah kandungan terperinci Bagaimana untuk Memilih Baris Cap Masa Terkini untuk Setiap Kunci dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!