<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Forum PostgreSQL - Pobieranie tablicy krotek przy CREATE FUNCTION]]></title>
	<link rel="self" href="http://forum.postgresql.org.pl/extern.php?action=feed&amp;tid=233&amp;type=atom"/>
	<updated>2009-06-12T17:35:57Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.postgresql.org.pl/viewtopic.php?id=233</id>
		<entry>
			<title type="html"><![CDATA[Odp: Pobieranie tablicy krotek przy CREATE FUNCTION]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=985#p985"/>
			<content type="html"><![CDATA[Super, dzięki za pomoc, mała przeróbka Twojego kodu i będzie grało.

P.S. Jak skończę projekcik, to udostępnię na forum system predykcji giełdowej, ciekawe czy się komu przyda. 
Serdecznie pozdrawiam :)]]></content>
			<author>
				<name><![CDATA[beowulf3]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=926</uri>
			</author>
			<updated>2009-06-12T17:35:57Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=985#p985</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Pobieranie tablicy krotek przy CREATE FUNCTION]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=984#p984"/>
			<content type="html"><![CDATA[Jeśli możesz wyszukać krotki z poziomu funkcji, to wystarczy ze przekażesz nazwę tablicy i w środku zdefiniujesz sobie pętlę, która będzie przebiegala po select'ie z tej tablicy. Na przykład jeśli tabela nazywa się  'test' i ma kolumnę 'i', to następującą funkcję można użyć do sumowania elementów tej tablicy (oczywiscie 'execute' w pętli może być bardziej skomplikowany)
[code]
create or replace function test(varchar) returns integer as 
$$
declare
s integer;
sum integer;
begin
sum:=0;
for s in execute 'select i from '||$1 loop
sum:=sum+s;
end loop;
return sum;
end;
$$
language 'plpgsql'
[/code]

Czy to coś pomogło?]]></content>
			<author>
				<name><![CDATA[rski]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=26</uri>
			</author>
			<updated>2009-06-12T17:21:54Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=984#p984</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Pobieranie tablicy krotek przy CREATE FUNCTION]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=983#p983"/>
			<content type="html"><![CDATA[Właśnie chciał bym, ale chodzi Ci o przekazanie jako "referencję" czy jako wartości? Był bym wdzięczny za przykład.]]></content>
			<author>
				<name><![CDATA[beowulf3]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=926</uri>
			</author>
			<updated>2009-06-12T14:16:48Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=983#p983</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Pobieranie tablicy krotek przy CREATE FUNCTION]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=982#p982"/>
			<content type="html"><![CDATA[A nie możesz przekazać całej tablicy jako argument?]]></content>
			<author>
				<name><![CDATA[rski]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=26</uri>
			</author>
			<updated>2009-06-12T11:35:55Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=982#p982</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Pobieranie tablicy krotek przy CREATE FUNCTION]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=981#p981"/>
			<content type="html"><![CDATA[Niestety nie, powiedzmy, że chcę liczyć R^2, albo dla nie wtajemniczonych, zwykłą średnią. Muszę pobrać n krotek, zsumować i podzielić przez n. Tylko, że to n, nie zawsze musi mieć tyle ile ma w tym momencie, może być dynamiczne. Jednym parametrem mogę zdziałać wszystko, a tak, to musiał bym przeciążać funkcję, gdybym chciał dodać kolejny parametr, albo inny typ...]]></content>
			<author>
				<name><![CDATA[beowulf3]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=926</uri>
			</author>
			<updated>2009-06-12T10:38:18Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=981#p981</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Pobieranie tablicy krotek przy CREATE FUNCTION]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=980#p980"/>
			<content type="html"><![CDATA[A musisz przekazywać listę krotek? Nie wystarczy przekazywać pojedyncza wartość i wywołać funkcję
[code]
select rsquare(,wartosc1,wartosc2) from tabela;
[/code]]]></content>
			<author>
				<name><![CDATA[rski]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=26</uri>
			</author>
			<updated>2009-06-12T07:12:25Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=980#p980</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Pobieranie tablicy krotek przy CREATE FUNCTION]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=979#p979"/>
			<content type="html"><![CDATA[Witam,

ostatnio buduję system predykcji giełdowej w oparciu o PostgreSQL i mam problem z tworzeniem funkcji składowanej, która pobierała by listę krotek, a następnie obliczała współczynnik R^2, Phi-square etc, etc... Znalazłem funkcję obliczającą R^2, ale nadal zastanawia mnie problem, w jaki sposób podać funkcji jako parametr listę krotek (wyników np. SELECT wartosc FROM tabela;).
Poniżej przedstawiam kod funkcji, która ma za zadanie obliczać współczynnik R^2, ale nie może, bo pobiera tylko jeden parametr, zamiast całej tablicy.

[code]
CREATE OR REPLACE FUNCTION RSQUARE(INTEGER, INTEGER) RETURNS FLOAT
AS
'
BEGIN
  
   RETURN 1-(VARIANCE($1::FLOAT) / VARIANCE($2::FLOAT));

END'
LANGUAGE 'plpgsql';
[/code]

Był bym wdzięczny, za jakie kolwiek sugestie.

Pozdrawiam.]]></content>
			<author>
				<name><![CDATA[beowulf3]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=926</uri>
			</author>
			<updated>2009-06-11T21:11:57Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=979#p979</id>
		</entry>
</feed>
