A cóż to za konstrukcja? Gdzie można przerobić tę lekcję?
@jarekczek (w komentarzu się nie zmieszczę) to taki myk który pozwala wykorzystać zmienne do liczenia sumy bieżącej (i nie tylko)
Zapytanie:
select
id
,@rs --zmienna przed przypisaniem
,@rs:=@rs+t.id rs --zwiększenie sumy o aktualną warość id
,@rs --zmienna po przypisaniu
FROM
t
JOIN (SELECT
--inicjalizacja zmiennej @rs
@rs :=0
) r
order by
id asc
taka konstrukcja robi sumę bieżącą: @rs:=@rs+t.id
ale zwróć uwagę, że jeżeli @rs=0 i w pierwszym rekordzie id = 1 to zapytanie zwróci:
1,0,1,1
Czyli przetwarza od lewej do prawej najpierw wartość @rs, później dodanie wartosci z id, później wartość @rs po dodaniu id, w sumie analogicznie jakbyś zrobił pętle, w pseudokodzie:
@rs=0
@dane = select id from t order by id
petla po @dane od początku do konca {
print @dane.id
print @rs
@rs=@rs+@dane.id
print @rs
print @rs
}
Czyli iteracja bez pętli i magii ;)