=?iso-8859-2?q?Zagnie=BFdzone_SQL,_funkcje_wbudowane?=
Krzysiek299 - 16-04-2006 00:06
=?iso-8859-2?q?Zagnie=BFdzone_SQL,_funkcje_wbudowane?=
Witam.
Próbuje obliczyć korelację pomiędzy dwiema danymi następującym zapytanmiem:
SELECT CORR(SELECT something FROM mytable WHERE id=1, SELECT something FROM mytable WHERE id=2) FROM mytable;
Niestety otrzymuje błąd. Jak powinno w tym przypadku wyglądać zapytanie? funkcja wbudowana ma składnie:
SELECT CORR(expr1,expr2) FROM mytable; gdzie expr1 to nazwa 1 kolumny z tabeli mytable, a expr2 to nazwa 2 kolumny z tabeli mytable.
Proszę o pomoc! Korzystam z Oracle 10g.
=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 16-04-2006 00:06
Użytkownik Krzysiek299 napisał: > Witam. > > Próbuje obliczyć korelację pomiędzy dwiema danymi następującym > zapytanmiem: > > SELECT CORR(SELECT something FROM mytable WHERE id=1, SELECT something > FROM mytable WHERE id=2) FROM mytable;
Najprawdopodobniej wystarczy podzapytania opakować w nawiasy (przy założeniu, że zwracaja jeden wiersz) i ostatnią tabele zamienić na dual.
-- P.M.
Krzysiek299 - 17-04-2006 00:02
DUAL i nawiasy nie pomagaja:( Ale podzapytania te zwracaja wiecej niz jeden wiersz (i o to wyskakuje teraz blad), poniewaz funkcja CORR(expr1,expr2) wymaga wiecej niz jednego rekordu danych. expr1 to nazwa 1 kolumny z tabeli, i do obliczen brane sa wtedy wszystkie rekordy z tej kolumny (analogicznie expr2).
Czy podzapytania moga zwracac wiecej niz jeden wiersz? Da sie to jakos ominac?
Michal - 17-04-2006 00:02
> > Czy podzapytania moga zwracac wiecej niz jeden wiersz? Da sie to > jakos ominac? >
Zobacz na operator IN () ale nie wiem czy Ci pomoze w tym przypadku.
Pozdrawiam
Krzysiek299 - 17-04-2006 00:02
IN tutaj raczej nie pomoze:( moja tabela wyglada nastepujaco: x | id ------- 2 | 1 5 | 2 2 | 1 3 | 2 3 | 1 4 | 2 probuje obliczyc korelacje pomiedzy x'ami o id=1 a x'ami o id=2.
Zapytanie: SELECT CORR(x1,x2) FROM (SELECT x AS x1 FROM mytable WHERE id=1), (SELECT x AS x2 FROM mytable WHERE id=2); liczy korelacje ale zawsze daje wartosc 0, czyli bledna:(
Wogole dziwny rezultat otrzymuje samym zapytaniem: SELECT * FROM (SELECT x AS x1 FROM mytable WHERE id=1), (SELECT x AS x2 FROM mytable WHERE id=2): x1 | x2 ---------- 2 | 5 2 | 5 3 | 5 a przeciez x2 powinno byc 5 3 4? Dlaczego to ostatnie zapytanie nie dziala prawidlowo? Macie moze jakies pomysly?
Krzysiek299 - 17-04-2006 00:02
Rozwiazanie podal mi MD na comp.databases.oracle.server i wyglada nastepujaco: tabela musi miec dodatkowa kolumne aby dane moglybyc pogrupowane w pary: x | id | no -------------- 2 | 1 | 1 5 | 2 | 1 2 | 1 | 2 3 | 2 | 2 3 | 1 | 3 4 | 2 | 3 i teraz korelacje pomiedzy x'ami o id=1, a x'ami o id=2 zwraca zapytanie: SELECT corr(x1,x2) FROM ( SELECT t1.x x1,t2.x x2 FROM mytable t1,mytable t2 WHERE t1.NO = t2.NO AND t1.ID=1 AND t2.ID=2 ORDER BY t1.NO );
dzieki za pomoc. pozdrawiam
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
Wydajność baz danych w zależności od poziomu izolacji ANSI/ISO
Czy zna (obsługuje) ktoś program Iso Draw ?
Jak =?windows-1250?Q?pobra=E6_szacowan=B9_wielko=9C=E6_zbiory_wy nikowego_w_MS?==?windows-1250?Q?_SQL_2005=3F?=
MYSQL - kodowanie w ISO-PL
strona plus baza w iso do utf-8
Kodowanie: z iso na utf
[oracle] - Oracle SQL Developer - co to jest SID?
MS Sql Server 2000 i Server 2003
[MS SQL + kontakty outlook]CZy kontakty moge być zewnętrzne?
[oracle] Baza danych do kursy Introduction to Oracle9i:PL/SQL ? Skąd ją pobrać ?
zanotowane.pldoc.pisz.plpdf.pisz.plnumervin.keep.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|