Fungsi tetingkap hanya disokong sejak MySQL8
<窗口函数> OVER ([PARTITION BY <用于分组的列>] ORDER BY <用于排序的列>)
ketinggalan dan pendahuluan bermakna ke hadapan dan ke belakang masing-masing
Terdapat tiga parameter. ungkapan: nama lajur; offset: offset; default_value: nilai lalai di luar tetingkap rakaman (lalai adalah nol, boleh ditetapkan kepada 0)
Fungsi LAG(): Statistik perubahan suhu berbanding sebelumnya hari Untuk ID tarikh tinggi
, kami mula-mula mengisih mengikut tarikh, dan kemudian mencari ID dengan suhu yang lebih tinggi hari ini daripada hari sebelumnya menggunakan fungsi lag() untuk menolak suhu kembali satu hari;
select id, date, temperature, LAG(temperature, 1, 0) OVER (order by date) as temp FROM weather
Hasil pertanyaan:
Kemudian pilih data dengan suhu lebih besar daripada temp dan temp tidak sama dengan 0
rreeeHasilnya ialah seperti berikut:
2 Fungsi LEAD(): Kira ID tarikh dengan suhu yang lebih tinggi daripada hari berikutnya
Mula-mula, kami mengisih tarikh, dan kemudian gunakan plumbum Fungsi () menolak suhu kembali satu hari dan mencari id yang mempunyai suhu yang lebih tinggi pada hari itu daripada hari berikutnya.
select id from (select id, date, temperature, LAG(temperature, 1, 0) OVER (order by date) as temp FROM weather) tmp where temperature>temp and temp != 0;
Hasil pertanyaan:
Kemudian pilih data dengan suhu lebih besar daripada suhu dan suhu tidak sama dengan 0
rreeeHasil pertanyaan:
select id, date, temperature, LEAD(temperature, 1, 0) OVER (order by date) as temp FROM weather
Atas ialah kandungan terperinci Cara menggunakan fungsi LAG() dan fungsi LEAD() dalam MySQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!