<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Forum PostgreSQL - UNION]]></title>
		<link>https://forum.postgresql.org.pl/viewtopic.php?id=1181</link>
		<description><![CDATA[Najświeższe odpowiedzi w UNION.]]></description>
		<lastBuildDate>Mon, 12 Dec 2011 15:06:40 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Odp: UNION]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=3320#p3320</link>
			<description><![CDATA[[quote=rski]?!
No nie kumam. W pierwszym select'ie wypisujesz wszystkie wiersze z imieniem 'ania' a w drugim liczysz ile jest wszystkich wierszy w tabeli (nie koniecznie z imieniem 'ania')
Gdzie tu logika ?

To było tak na marginesie.

Z drugiej strony jak chcesz uzyć UNION to oba selecty musza zwracac taka sama ilosc kolumn, i typy poszczegolnych kolumn powinny byc zgodne. Pierwszy select wypisuje 3 kolumny, drugi tylko 2 (chyba zapomniales przecinka po COUNT)[/quote]

przecinka zapomniałem to taki przykład był:):) chodzi o to że raport ma liczyć ile wierszy jest danego typu:
ania xińska grupa 1
ania ykowa grupa 2
ania zowa grupa 3
rekorów 3

czyli raport ma dawać informację o tym jakie sa rekordy i ile ich jest.]]></description>
			<author><![CDATA[dummy@example.com (lukaszp)]]></author>
			<pubDate>Mon, 12 Dec 2011 15:06:40 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=3320#p3320</guid>
		</item>
		<item>
			<title><![CDATA[Odp: UNION]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=3319#p3319</link>
			<description><![CDATA[Wystarczy ta zwrotka z Admina:) dzięki wielkie za pomoc :) tylko jak wymusić taką metainformację z poziomu zapytania.?]]></description>
			<author><![CDATA[dummy@example.com (lukaszp)]]></author>
			<pubDate>Mon, 12 Dec 2011 15:01:56 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=3319#p3319</guid>
		</item>
		<item>
			<title><![CDATA[Odp: UNION]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=3313#p3313</link>
			<description><![CDATA[Rzeczywiście trochę to przekombinowane co chcesz zrobić (raczej tak się nigdy nie robi). Co do Twojej wątpliwości, to wystarczy zajrzeć do [url=http://www.postgresql.org/docs/current/static/sql-select.html#SQL-UNION]dokumentacji Postgres'a[/url] i tam pisze jasno:

[quote]The two SELECT statements that represent the direct operands of the UNION must produce the [b]same number[/b] of columns, and corresponding columns must be of [b]compatible[/b] data types.[/quote]

Być może wystarczałoby Ci to, że psql (czy ew. inne narzędzie jak pgAdmin III) sam z siebie podaje liczbę zwróconych wierszy jako [b]metainformacja[/b], przykładowo masz:

[code]Select imie, nazwisko, grupa FROM tabela_dane WHERE imie = 'Ania';
 imie | nazwisko | grupa 
------+----------+-------
 Ania | Kar      | A+
 Ania | Urman    | A
(2 rows)[/code]

Jeżeli jest to konieczne potrzebne, to wszystko można, wystarczy przy count(*) zrobić rzutowanie na typ tekstowy taki jakiego użyłeś dla kolumny imie, resztę kolumn wstawić puste stringi, czy ew. coś innego + ustawić Order By (dla unii) tak żeby ilość wierszy była na początku:

[code]SELECT imie, nazwisko, grupa FROM tabela_dane WHERE imie = 'Ania'
    UNION
SELECT count(*)::text, '', '' FROM tabela_dane WHERE imie = 'Ania'
    ORDER BY imie;
 imie | nazwisko | grupa 
------+----------+-------
 2    |          | 
 Ania | Kar      | A+
 Ania | Urman    | A
(3 rows)[/code]]]></description>
			<author><![CDATA[dummy@example.com (gszpetkowski)]]></author>
			<pubDate>Thu, 08 Dec 2011 18:51:20 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=3313#p3313</guid>
		</item>
		<item>
			<title><![CDATA[Odp: UNION]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=3312#p3312</link>
			<description><![CDATA[?!
No nie kumam. W pierwszym select'ie wypisujesz wszystkie wiersze z imieniem 'ania' a w drugim liczysz ile jest wszystkich wierszy w tabeli (nie koniecznie z imieniem 'ania')
Gdzie tu logika ?

To było tak na marginesie.

Z drugiej strony jak chcesz uzyć UNION to oba selecty musza zwracac taka sama ilosc kolumn, i typy poszczegolnych kolumn powinny byc zgodne. Pierwszy select wypisuje 3 kolumny, drugi tylko 2 (chyba zapomniales przecinka po COUNT)]]></description>
			<author><![CDATA[dummy@example.com (rski)]]></author>
			<pubDate>Thu, 08 Dec 2011 18:33:56 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=3312#p3312</guid>
		</item>
		<item>
			<title><![CDATA[UNION]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=3311#p3311</link>
			<description><![CDATA[Witam potrzebuje napisać zapytanie sql w postgre. Mianowicie zapytanie ma listować(jakościowo) dane z tabeli a następnie w pierwszym wierszu wyświetlić ilość wyświetlonych wierszy. coś na wzór:
SELECT
imie,
nazwisko,
grupa
FROM
tabela_dane
WHARE
imie='ania'
UNION
SELECT
COUNT(*)
'',
''
FROM
tabela_dane

generalnie nie działa takie zapytanie i nie zabardzo wiem dlaczego? wyświetla ze typy pół muszą być zgodne?]]></description>
			<author><![CDATA[dummy@example.com (lukaszp)]]></author>
			<pubDate>Thu, 08 Dec 2011 10:19:59 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=3311#p3311</guid>
		</item>
	</channel>
</rss>
