ALTER FUNCTION [dbo].[TEST_BARTLETTA] (@POZIOM_IST DECIMAL(10,6))
RETURNS CHAR(80)
AS
BEGIN
DECLARE @ILOSC_1 DECIMAL (10,6)
DECLARE @WARIANCJA_1 DECIMAL (10,6)
DECLARE @ILOSC_2 DECIMAL (10,6)
DECLARE @WARIANCJA_2 DECIMAL (10,6)
DECLARE @ILOSC_3 DECIMAL (10,6)
DECLARE @WARIANCJA_3 DECIMAL (10,6)
DECLARE @STOPNIE_SW DECIMAL (10,6)
DECLARE @WARIANCJA_SR DECIMAL (10,6)
DECLARE @STAŁA_C DECIMAL (10,6)
DECLARE @I DECIMAL (10,6)
DECLARE @STATYSTYKA FLOAT (15)
DECLARE @TEKST CHAR (80)
SELECT @ILOSC_1 = count(*),
@WARIANCJA_1 = VAR(OSOBY_ILOSC/POWIERZCHNIA)
FROM spis where id<=16
SELECT @ILOSC_2 = count(*),
@WARIANCJA_2 = VAR(OSOBY_ILOSC/POWIERZCHNIA)
FROM spis where id>16 and id <=37
SELECT @ILOSC_3 = count(*),
@WARIANCJA_3 = VAR(OSOBY_ILOSC/POWIERZCHNIA)
FROM spis where id>37 and id<=54
SET @STOPNIE_SW=@ILOSC_1+@ILOSC_2+@ILOSC_3-3
SET @STAŁA_C=1+(1/@ILOSC_1+1/@ILOSC_2+1/@ILOSC_3-1/@STOPNIE_SW)/6
SET @WARIANCJA_SR=((@ILOSC_1-1)*@WARIANCJA_1+(@ILOSC_2-1)*@WARIANCJA_2+(@ILOSC_3-1)*@WARIANCJA_3)/(@ILOSC_1+@ILOSC_2+@ILOSC_3-3)
SET @STATYSTYKA=(@STOPNIE_SW*LOG(@WARIANCJA_SR,EXP(1))-(@ILOSC_1-1)*LOG(@WARIANCJA_1,EXP(1))-(@ILOSC_2-1)*LOG(@WARIANCJA_2,EXP(1))-(@ILOSC_3-1)*LOG(@WARIANCJA_3,EXP(1)))/@STAŁA_C
IF @STATYSTYKA<dbo.KWANTYL_CHI2(1-@POZIOM_IST/2,@STOPNIE_SW) BEGIN
SET @TEKST = 'BRAK PODSTAW'
END
ELSE BEGIN
SET @TEKST = 'ODRZUCAMY'
END
RETURN @TEKST
END
select dbo.TEST_BARTLETTA(0.05)