<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Forum PostgreSQL - Funkcja przeszukująco - porównująca]]></title>
		<link>https://forum.postgresql.org.pl/viewtopic.php?id=2228</link>
		<description><![CDATA[Najświeższe odpowiedzi w Funkcja przeszukująco - porównująca.]]></description>
		<lastBuildDate>Thu, 23 Oct 2014 06:34:42 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Odp: Funkcja przeszukująco - porównująca]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=5366#p5366</link>
			<description><![CDATA[zamień linie FROM table_1 INNER JOIN table_2 ON raport_2.WART_7 = table_1.WART_3)
na 
FROM table_1 INNER JOIN table_2 ON raport_2.WART_7 = table_1.WART_3
WHERE (A BETWEEN B AND C)
)]]></description>
			<author><![CDATA[dummy@example.com (c_michal)]]></author>
			<pubDate>Thu, 23 Oct 2014 06:34:42 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=5366#p5366</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Funkcja przeszukująco - porównująca]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=5365#p5365</link>
			<description><![CDATA[Wiesz co, chyba znam problem. Mój INER JOIN coś szwankuje i mi wiersze w których akurat są te zera po prostu zdublował. Zaraz dojdę czemu.

---EDIT---
Doszedłem. Wiem czemu mi tak dubluje ale chyba potrzebuję już naprawdę ostatni raz Twojej pomocy przy sklejeniu dwóch zapytań. Do tego swojego muszę jeszcze dodać warunek:
where 
(A BETWEEN B AND C)

I to musi się wykonać jeszcze przed tym drugim zapytaniem ale kurcze nie mam pomysłu jak to zrobić dlatego że kolumna z numerem wiersza powinna się dodać dopiero po tej mojej klauzuli where z tego względu że jak ją dodam wcześniej, później wykonam where to będę miał dziury w 'lp']]></description>
			<author><![CDATA[dummy@example.com (peter)]]></author>
			<pubDate>Wed, 22 Oct 2014 14:26:56 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=5365#p5365</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Funkcja przeszukująco - porównująca]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=5363#p5363</link>
			<description><![CDATA[Jeśli chcesz zobaczyć odfiltrowane wiersze to w klauzuli WHERE napisz 
not (
          coalesce((d.x = 0 and poprz_y = 0),false)= false
  and coalesce((d.y = 0 and nast_x = 0),false) = false
)]]></description>
			<author><![CDATA[dummy@example.com (c_michal)]]></author>
			<pubDate>Wed, 22 Oct 2014 13:39:03 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=5363#p5363</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Funkcja przeszukująco - porównująca]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=5362#p5362</link>
			<description><![CDATA[Próbowałem tak już robić wczoraj ale dzieje się coś dziwnego bo w tabeli mam w sumie 3544 wiersze. Wynik zapytania zwraca mi 3538 wierszy no i super. Wszystko jest ok dlatego że powinien wyciąć mi 6 wierszy. Tylko kurcze nie wiem które mi wycina ponieważ w wyniku wiersze gdzie te 0 są, normalnie się wyświetlają :(.]]></description>
			<author><![CDATA[dummy@example.com (peter)]]></author>
			<pubDate>Wed, 22 Oct 2014 13:33:43 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=5362#p5362</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Funkcja przeszukująco - porównująca]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=5361#p5361</link>
			<description><![CDATA[Oto Ci chodziło?

with tabela as (SELECT
WART_1,
WART_2 as y,
WART_3,
WART_4,
WART_5 as x,
WART_6,
WART_7,
WART_8,
WART_9,
WART_10,
,row_number() over(order by WART_1) as lp
FROM table_1 INNER JOIN table_2 ON raport_2.WART_7 = table_1.WART_3)
select 
WART_1,
y as WART_2,
WART_3,
WART_4,
x as WART_5,
WART_6,
WART_7,
WART_8,
WART_9,
WART_10
from (select t.*
            ,lag(y) over (order by lp) as poprz_y
            ,lead(x) over (order by lp) as nast_x
        from tabela t) d
where coalesce((d.x = 0 and poprz_y = 0),false)= false
  and coalesce((d.y = 0 and nast_x = 0),false) = false;]]></description>
			<author><![CDATA[dummy@example.com (c_michal)]]></author>
			<pubDate>Wed, 22 Oct 2014 13:18:53 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=5361#p5361</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Funkcja przeszukująco - porównująca]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=5360#p5360</link>
			<description><![CDATA[Wiesz co, faktycznie, jak przeanalizowałem i poprawiłem warunek trochę bo miałem błąd to działa prawidłowo ale troszeczkę nie taki efekt chcę uzyskać. W tej chwili on po prostu tworzy mi obok dwie kolumny z poprz_y i nast_x wycinając wartości gdzie poprz_y i nast_x jest 0. Efekt który ja chciałem uzyskać to w ogóle żeby takich wierszy nie wyświetlać. Czyli np w wiersz 98 znalazł w kolumnie WART_5 - 0 i w wierszu 99 w kolumnie WART_2 też znalazł 0. Takie 2 wiersze są wycinane ze wszystkimi danymi które znajdują się w pozostałych kolumnach. Czyli wiersza 98 i 99 w ogóle nie wyświetlam. W tej chwili faktycznie w tej kolumnie popz_y i nast_x nie mam tych wartości z zerami ale niestety obok mam te pozostałe wiersze z kolumnami i tam te dane już występują. A chciałbym żeby tego w ogóle nie wyświetlać. Jeszcze próbowałem to INNER JOIN-em zrobić ale coś nie chce za bardzo działać. Do tego zapytania jeszcze dochodzi mi jeden warunek gdzie wycinam wiersze w których wartości z 2 kolumn nie znajdują się pomiędzy pewnym zakresem ale ten warunek mam i on działa. Teraz dodatkowo muszę dorzucić warunek którego dotyczy temat. Już 2 dni nad tym siedzę :(, z PSQL-em styczności wcześniej nigdy nie miałem, s MySQL-em tak ale aż tak rozbudowanych kwerend nie pisałem.]]></description>
			<author><![CDATA[dummy@example.com (peter)]]></author>
			<pubDate>Wed, 22 Oct 2014 13:00:34 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=5360#p5360</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Funkcja przeszukująco - porównująca]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=5359#p5359</link>
			<description><![CDATA[zmień polecenie ,row_number() over() as lp na ,[b]row_number() over(order by WART_1) as lp[/b]

PS mam nadzieje, że pole WART_1 jest unikatowe w skali całego zbioru jeśli nie to musisz po przecinku dodać inne pole które posortuje twój zbiór danych]]></description>
			<author><![CDATA[dummy@example.com (c_michal)]]></author>
			<pubDate>Tue, 21 Oct 2014 14:56:53 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=5359#p5359</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Funkcja przeszukująco - porównująca]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=5358#p5358</link>
			<description><![CDATA[No i wiem gdzie może być błąd. Czy dało by radę żeby przez wstawieniem row_number zrobić order by po WART_1? Bo na tym się wywala właśnie. Dlatego że aby mieć odpowiednio ułożone wiersze z wartościami WART_5 i WART_2 muszę zrobić order by po WART_1. Jak to zrobię po dodaniu row_number to mi rozwala kolejność. Czyli, najpierw sortuję po WART_1 i mam odpowiednio ułożoną tabelę a następnie dopiero do tak ułożonej jakbym dodał row_number to powinno być już ok.]]></description>
			<author><![CDATA[dummy@example.com (peter)]]></author>
			<pubDate>Tue, 21 Oct 2014 14:52:11 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=5358#p5358</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Funkcja przeszukująco - porównująca]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=5357#p5357</link>
			<description><![CDATA[patrz na rekordy w ten sposób
Jesli obserwujesz rekord o lp=100 to pole poprz_y będzie wartością WART_2 z rekordu o LP=99, a pole  nast_x będzie wartością WART_5 z wiersza o lp=101 

pole LP w tym przypadku decyduje o kolejności wierszy które są brane do analizy]]></description>
			<author><![CDATA[dummy@example.com (c_michal)]]></author>
			<pubDate>Tue, 21 Oct 2014 14:44:21 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=5357#p5357</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Funkcja przeszukująco - porównująca]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=5356#p5356</link>
			<description><![CDATA[Ok, moja wina ponieważ pochrzaniłem warunki ale mimo wszystko jest coś nie tak.Bo w wierszu gdzie w WART_5 mam 0 to jako wartość poprz_y mam WART_2 ale z tego samego wiersza a powinno być 0.]]></description>
			<author><![CDATA[dummy@example.com (peter)]]></author>
			<pubDate>Tue, 21 Oct 2014 14:33:42 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=5356#p5356</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Funkcja przeszukująco - porównująca]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=5355#p5355</link>
			<description><![CDATA[Możesz dać jakiś przykład?

Sprawdź czy nie ma takiego wiersza w danych z twojego selecta.]]></description>
			<author><![CDATA[dummy@example.com (c_michal)]]></author>
			<pubDate>Tue, 21 Oct 2014 14:32:51 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=5355#p5355</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Funkcja przeszukująco - porównująca]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=5354#p5354</link>
			<description><![CDATA[Właśnie nie do końca działa. Efekt mam obecnie taki że utworzył mi w tabeli dodatkowy wiersz pod tym gdzie znalazł te z zerami i wiersz powstał ze sklejenia WART_5 i WART_2. Tak jakby zdublował mi dokładnie ten wiersz gdzie WART_2 była 0.]]></description>
			<author><![CDATA[dummy@example.com (peter)]]></author>
			<pubDate>Tue, 21 Oct 2014 14:20:40 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=5354#p5354</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Funkcja przeszukująco - porównująca]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=5353#p5353</link>
			<description><![CDATA[a to Ci działa?

with tabela as (SELECT
WART_1,
WART_2 as y,
WART_3,
WART_4,
WART_5 as x,
WART_6,
WART_7,
WART_8,
WART_9,
WART_10,
,row_number() over() as lp
FROM table_1 INNER JOIN table_2 ON raport_2.WART_7 = table_1.WART_3)
select *
from (select t.*
            ,lag(y) over (order by lp) as poprz_y 
            ,lead(x) over (order by lp) as nast_x 
        from tabela t) d 
where coalesce((d.x = 0 and poprz_y = 0),false)= false
  and coalesce((d.y = 0 and nast_x = 0),false) = false;]]></description>
			<author><![CDATA[dummy@example.com (c_michal)]]></author>
			<pubDate>Tue, 21 Oct 2014 13:43:13 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=5353#p5353</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Funkcja przeszukująco - porównująca]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=5352#p5352</link>
			<description><![CDATA[Może inaczej, na chwilę obecną mam coś takiego:

select * from
(SELECT 
WART_1, 
WART_2, 
WART_3,
WART_4,
WART_5,
WART_6, 
WART_7,
WART_8,
WART_9,
WART_10
FROM table_1 INNER JOIN table_2 ON table_2.WART_7 = table_1.WART_3
order by WART_1 asc) as dane

W kolumnie WART_5 siedzi pierwsze 0 w kolumnie WART_2 może siedzieć drugie 0. I teraz w momencie natrafienia na 0 w kolumnie WART_5 sprawdzam czy w wierszu powyżej w kolumnie WART_2 też jest 0. Jeśli tak to te wiersze pomijam, jeśli nie to je wyświetlam.

WART_1 jest wartością po której sortuję. Nie są to numery po kolei ale zawsze w sytuacji kiedy znajdę w kolumnie WART_5 0 i 0 będzie też w kolumnie WART_2 to kolumnna WART_1 będzie różniła się o 1. Dla przykładu, mamy kolumny gdzie WART_1 przyjmuje wartości:
3
5
7
34
44
56
57
78
To jeśli w wierszu 57 w kolumnie WART_5 wystąpi zero to nie ma możliwości aby kolumna WART_2 miała inny numer wiersza jak 56. Zawsze będzie miała o 1 mniejszy.]]></description>
			<author><![CDATA[dummy@example.com (peter)]]></author>
			<pubDate>Tue, 21 Oct 2014 13:37:20 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=5352#p5352</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Funkcja przeszukująco - porównująca]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=5351#p5351</link>
			<description><![CDATA[[quote=peter] ona działa wyłącznie na danych przechowywanych w tej samej partycji[/quote]

Co rozumiesz przez to stwierdzenie? 

Jeśli działa Ci powyższy przykład to będzie działał też i w twojej bazie, nie widzę żadnych zagrożeń!]]></description>
			<author><![CDATA[dummy@example.com (c_michal)]]></author>
			<pubDate>Tue, 21 Oct 2014 13:30:04 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=5351#p5351</guid>
		</item>
	</channel>
</rss>
