<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Forum PostgreSQL - Transpozycja wierszy do kolumnn]]></title>
	<link rel="self" href="http://forum.postgresql.org.pl/extern.php?action=feed&amp;tid=596&amp;type=atom"/>
	<updated>2011-05-31T06:16:38Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.postgresql.org.pl/viewtopic.php?id=596</id>
		<entry>
			<title type="html"><![CDATA[Odp: Transpozycja wierszy do kolumnn]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=2537#p2537"/>
			<content type="html"><![CDATA[Dzięki :)]]></content>
			<author>
				<name><![CDATA[Bear]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=1210</uri>
			</author>
			<updated>2011-05-31T06:16:38Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=2537#p2537</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Transpozycja wierszy do kolumnn]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=2535#p2535"/>
			<content type="html"><![CDATA[Wystarczy samo:

[code]SELECT
    MAX(CASE WHEN point like 'pstat' THEN value END) AS "Pstat [bar]",
    MAX(CASE WHEN point like 'PWR' THEN value END) AS "Moc [kW]",
    MAX(CASE WHEN point like 'tcwu' THEN value END) AS "Tcwu [st C]",
    MAX(CASE WHEN point like 'tzas' THEN value END) AS "Tzas [st C]"    
FROM tabela_last[/code]

Grupowanie powoduje "wymuszenie" 4 wierszy w wyniku mimo stosowania funkcji agregującej.]]></content>
			<author>
				<name><![CDATA[gszpetkowski]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=1223</uri>
			</author>
			<updated>2011-05-30T14:28:45Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=2535#p2535</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Transpozycja wierszy do kolumnn]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=2534#p2534"/>
			<content type="html"><![CDATA[Jak można zapisać dane z tabeli:

date		       | point | value
2011-05-18     | pstat | 2.11
2011-05-18     | PWR | 0
2011-05-18     | tcwu | 56
2011-05-18     | tzas  | 46

w jednym wierszu i kilku kolumanch:
pstat | PWR | tcwu | tzas
2,11  | 0       | 56    | 46

Z zapytania:

SELECT
MAX(CASE WHEN point like 'pstat' THEN value ELSE NULL END) AS "Pstat [bar]",
MAX(CASE WHEN point like 'PWR' THEN value ELSE NULL END) AS "Moc [kW]",
MAX(CASE WHEN point like 'tcwu' THEN value ELSE NULL END) AS "Tcwu [st C]",
MAX(CASE WHEN point like 'tzas' THEN value ELSE NULL END) AS "Tzas [st C]"

from tabela_last

GROUP BY point
ORDER by point  ASC

dostaję 4 wiesze i 4 kolumny:

pstat | PWR | tcwu | tzas
2,11  |          |         | 
         | 0       |         |  
         |          | 56    |  
         |          |         | 46

Pozdrawiam]]></content>
			<author>
				<name><![CDATA[Bear]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=1210</uri>
			</author>
			<updated>2011-05-30T10:50:14Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=2534#p2534</id>
		</entry>
</feed>
