<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Forum PostgreSQL - rownum]]></title>
	<link rel="self" href="http://forum.postgresql.org.pl/extern.php?action=feed&amp;tid=131&amp;type=atom"/>
	<updated>2009-08-07T19:16:24Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.postgresql.org.pl/viewtopic.php?id=131</id>
		<entry>
			<title type="html"><![CDATA[Odp: rownum]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1134#p1134"/>
			<content type="html"><![CDATA[Dla lubiących i potrzebujących rownum'a polecam:

[url]http://www.depesz.com/index.php/2007/08/17/rownum-anyone-cumulative-sum-in-one-query/[/url]]]></content>
			<author>
				<name><![CDATA[Pigmej]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=878</uri>
			</author>
			<updated>2009-08-07T19:16:24Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1134#p1134</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: rownum]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1132#p1132"/>
			<content type="html"><![CDATA[Może jeszcze ktos o tym nie wie i przyda mu sie ta informacja

Teraz nie ma juz tego problemu od wersji 8.4 moża wykorzystać window_function ponizej przykład, którego nie trzeba chyba tłumaczyć.

SELECT *,row_number() OVER()  FROM pg_tables;]]></content>
			<author>
				<name><![CDATA[c_michal]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=627</uri>
			</author>
			<updated>2009-08-07T10:36:12Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1132#p1132</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: rownum]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=529#p529"/>
			<content type="html"><![CDATA[[quote=rski]Rownuma niestety nie ma, możesz spróbowac go zastąpić:
2) używając licznika (problemem jest to, że licznik trzeba za przed każdym zapytaniem zrestartować)[/quote]
Dobrze mówi :) Dać mu ... :>

Szybki przykładzik, może się przyda.

[code],-[19:42:22]merlin@[local]:5432=
`-merlin>create TEMP sequence test_seq;
,-[19:42:24]merlin@[local]:5432
`-merlin=>select a.*, nextval('test_seq') as rownum from bigtable a order by 1 asc  LIMIT 10;
 id | pole1 | rownum 
----+-------+--------
  1 |   971 |      1
  2 |  1447 |      2
  3 |  3150 |      3
  4 |  3553 |      4
  5 |  4654 |      5
  6 |  4882 |      6
  7 |  5121 |      7
  8 |  5128 |      8
  9 |  6389 |      9
 10 |  7903 |     10
(10 rows)[/code]]]></content>
			<author>
				<name><![CDATA[psocha]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=519</uri>
			</author>
			<updated>2009-02-06T18:47:17Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=529#p529</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: rownum]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=481#p481"/>
			<content type="html"><![CDATA[Rownuma niestety nie ma, możesz spróbowac go zastąpić:
1) Pisząc funkcję w plpgsql czy plperlu 
2) używając licznika (problemem jest to, że licznik trzeba za przed każdym zapytaniem zrestartować)]]></content>
			<author>
				<name><![CDATA[rski]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=26</uri>
			</author>
			<updated>2009-01-30T09:09:50Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=481#p481</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: rownum]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=478#p478"/>
			<content type="html"><![CDATA[Chodzi o to by dla dowolnego zapytania nie zaleznie od sposobu jego sortowania istniala kolumna rownum zwracajaca numer porzadkowy wiersza, a takze by mozna było po niej dokonywac wyboru np wybrac co 5 wiersz np where (rownum mod 5)=0]]></content>
			<author>
				<name><![CDATA[c_michal]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=627</uri>
			</author>
			<updated>2009-01-28T21:54:04Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=478#p478</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: rownum]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=477#p477"/>
			<content type="html"><![CDATA[Co dokladnie ma zwrócić zapytanie?]]></content>
			<author>
				<name><![CDATA[rski]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=26</uri>
			</author>
			<updated>2009-01-28T19:09:21Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=477#p477</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[rownum]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=476#p476"/>
			<content type="html"><![CDATA[Szumak rozwiązania problemu braku w PostgreSql funkcji rownum (odpowiednik z oracle) 

Nie chce korzystac z tworzenia tymczasowewej sekwencji

Znalałem takie rozwiazanie ale działa mało wydajnie zwłaszcza gdy zapytanie zwraca duza ilosc wierszy

SELECT s as rownum,u.usesysid,u.usename 
FROM generate_series(1, array_upper(array(select usesysid from pg_shadow order by usename DESC), 1)) AS s
join pg_shadow as u on usesysid=(array(select usesysid from pg_shadow order by usename DESC))[s]

Czy może ktoś rozwiazał ten problem i sie podzieli wiedza (może jakas funkcja w C)]]></content>
			<author>
				<name><![CDATA[c_michal]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=627</uri>
			</author>
			<updated>2009-01-28T07:57:20Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=476#p476</id>
		</entry>
</feed>
