Pontuation(Pontuacao)とAccomodation(Estadia)に固有の番号があるテーブルがあり、各宿泊施設の平均的な発音を計算したい。 これはテーブルです:同じクエリではあるが関数内で結果が異なる
Estadia | Pontuacao
-------------------
5 | 5
-------------------
5 | 5
だから私はこのfuncionを作った:
delimiter $$
create function mediapontuacao(estadia int)
returns float
begin
declare media float;
select sum(Pontuacao)/count(*) into media
from EstadiaUtilizador
where Estadia = estadia;
return media;
end $$
私はこの
select mediapontuacao(5); //calculate average pontuation of the accomodation which number is 5
を行う場合は、このクエリは私に3.965の値を与えます。 しかし、私は、言い換えれば、この
select sum(Pontuacao)/count(*)
from EstadiaUtilizador
where Estadia = 5;
は数が5である宿泊施設の平均pontuation、私が書いた関数が何をすべきまったく同じことを計算しないと、このクエリは私に正確である5.00の値を与える場合回答。 私はなぜ同じ値を与えなければならないときに私は異なった価値を得るのか困惑している、と私は思う。
where Estadia = estadia
あなたのパラメータとカラムが異なっている必要があり
where 1 = 1
、たとえば、同じである:
これは問題で、私はそれが違っていると教えてくれました。ありがとうございました。 –