Ich habe eine Tabelle mit Pontuation (Pontuacao) und eine eindeutige Nummer für Unterkunft (Estadia) und ich möchte die durchschnittliche pontuation jeder Unterkunft berechnen. Dies ist die Tabelle:Verschiedene Ergebnisse für die gleiche Abfrage, aber innerhalb einer Funktion
Estadia | Pontuacao
-------------------
5 | 5
-------------------
5 | 5
Also habe ich dieses 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 $$
Wenn ich dies tun
select mediapontuacao(5); //calculate average pontuation of the accomodation which number is 5
Diese Abfrage mir den Wert von 3,965 ergibt. Aber wenn ich das tun
select sum(Pontuacao)/count(*)
from EstadiaUtilizador
where Estadia = 5;
Mit anderen Worten durchschnittlich pontuation die Unterkunft berechnen, die Nummer 5 ist, die genau die gleiche Sache der Funktion i tun schrieb sollte und diese Abfrage gibt mir den Wert von 5,00, das die richtigen ist Antworten. Ich bin verwirrt, warum ich verschiedene Werte bekomme, wenn es den gleichen Wert geben sollte, denke ich.
Das war das Problem, ich dachte, es war anders. Vielen Dank. –