Re: Result set granularity..
От | Harald Fuchs |
---|---|
Тема | Re: Result set granularity.. |
Дата | |
Msg-id | pulls7adsa.fsf@srv.protecting.net обсуждение исходный текст |
Список | pgsql-sql |
In article <59410.193.243.134.6.1064668289.squirrel@www.defero.se>, "Rasmus Aveskogh" <rasmus@defero.se> writes: > Hi, > Since I went from Oracle to PostgreSQL I've been missing the "invisable" > column 'rownum'. I often used it to lower the granularity of my data. > For example, say I have a large table containing some sort of statistical > data and want to plot a graph using it. > If the graph is 600 pixels wide I might as well lower the granularity of > my incoming data to 600 measure points before plotting. > In Oracle I used to do this by using the modulus operator on the rownum > column as a restriction. > SELECT <column> FROM <table> WHERE mod(rownum, 5) = 0; > The query above would give me every fifth row of the original result set > and would save me from sending the data over my database connection and do > the lowering of the granularity in the application. > I have two questions, one dependent on the answer on the other one.. > 1) Is it possible to achieve this any other _easy_ way? You could fake a rownum by means of a sequence: CREATE SEQUENCE tmpseq; SELECT <column> FROM ( SELECT nextval ('tmpseq') AS rownum, <column> FROM <table> ) AS <table>_with_rownum WHERE rownum % 5 = 0; DROP SEQUENCE tmpseq;
В списке pgsql-sql по дате отправления: