Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mencari Destinasi Terkini untuk Setiap Kereta Api Menggunakan SQL?
Gunakan klausa MAX(DATE) dan GROUP BY untuk mencari destinasi terkini
Matlamat pertanyaan SQL ini adalah untuk mendapatkan semula destinasi terkini setiap kereta api, tertakluk pada masa berlepas maksimum. Walau bagaimanapun, apabila mengecualikan lajur 'Dest' daripada klausa GROUP BY, saya menghadapi ralat "ora-00979 bukan ungkapan GROUP BY", yang nampaknya berlawanan dengan intuitif.
Untuk menyelesaikan masalah ini, kami boleh menggunakan fungsi tetingkap RANK() untuk menetapkan kedudukan kepada setiap destinasi dalam setiap kumpulan kereta api. Khususnya, destinasi kedudukan tertinggi akan sepadan dengan masa berlepas terkini.
Pertanyaan SQL berikut menunjukkan pendekatan ini:
<code class="language-sql">SELECT train, dest, time FROM ( SELECT train, dest, time, RANK() OVER (PARTITION BY train ORDER BY time DESC) dest_rank FROM traintable ) where dest_rank = 1</code>
Pertanyaan berfungsi seperti berikut:
Atas ialah kandungan terperinci Bagaimana untuk Mencari Destinasi Terkini untuk Setiap Kereta Api Menggunakan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!