Як порахувати середньоарифметичне
Привіт всім! Якщо поле в таблиці по ньому треба розрахувати середнє значення всіх чисел, як?
Знущаєшся, чи що? У школі навчався? склади все і поділи на кількість.
суму чисел поділити на їх кількість
COMPUTE Clause Generates totals that appear as additional summary columns at end of the result set. При використанні з BY, COMPUTE clause generates control-breaks і subtotals в result set. Ви можете визначити COMPUTE BY і COMPUTE в тій самій роботі.
Та не знаю, що так можна. Чи є функція типу Mean, вона лише для масивів.
query сюди не треба прив'язувати, не про таблицю в базі даних, навіть якщо і про них, то питання це замовчує
select AVG(Field1) from Table1
Дякую! Але це SQL, а в самій Delphi немає такої функції?
як ти її собі уявляєш?
function DataSetAvg(p_DataSet:TCustomDataSet;p_strFieldName):extendet; var Counter:integer; begin Counter:=0; result:=0; p_DataSet.First; while not p_DataSet.Eof do begin result:=result+p_DataSet.FieldByName(p_strFieldName).AsCurrency; Counter:=Counter+1; p_DataSet.Next; end; result:=result/counter; end;
за приколи з курсором під час обчислень не відповідаю
>за приколи з курсором під час обчислень не відповідаю DisableControls/EnableControls
У TClientDataSet до речі є чудове св-во Aggregates, там у Expression можна використовувати Avg(ім'я поля)