MS SQL – AVG daje netočan rezultat

Problem:
U bazi imamo dva reda datatype int. Prvi ima vrijednost 10, a drugi vrijednost 15. Kad okinemo query

 SELECT AVG(kolicina) as prosjecna_kolicina  FROM myTable

dobijemo 12 iako znamo da je prosjek od 10 i 15 zapravo 12,5  tj. (10+15)/2

Rješenje:

SELECT AVG(CAST(kolicina AS DECIMAL(10,2))) AS prosjecna_kolicina FROM myTable

Problem je u datatypeu polja iz kojeg radimo AVG. Ako nam je datatype integer i rezultat će biti integer pa prije izračuna prosjeka trebamo taj integer pretvoriti u decimal.


Leave a Reply

You must be logged in to post a comment.