select id from
(select id, if(not(@sum > 0.9), 1, 0) mark, (@sum:[email protected]+value) as sum
from trade cross join (select @sum:=0) s
where price=2 order by value asc) t
where mark =1
Kueri dalam menghitung jumlah kumulatif dan bidang tambahan mark
, yang sama dengan one
sementara jumlah kurang dan berubah menjadi nol ketika lebih dari 0,9. Karena bekerja satu langkah kemudian, ia mengumpulkan baris pertama di mana jumlah di atas batas.
Hasil seleksi dalam
id mark sum
4 1 0.30000001192092896
2 1 0.800000011920929
3 1 1.699999988079071
Sekarang di kueri luar Anda hanya perlu memilih baris dengan mark
sama dengan 1. Dan hasilnya 4,2,3