Re: Result set granularity..
От | Shridhar Daithankar |
---|---|
Тема | Re: Result set granularity.. |
Дата | |
Msg-id | 200309291312.00744.shridhar_daithankar@persistent.co.in обсуждение исходный текст |
Ответ на | Result set granularity.. ("Rasmus Aveskogh" <rasmus@defero.se>) |
Список | pgsql-general |
On Saturday 27 September 2003 18:41, Rasmus Aveskogh wrote: > 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? > Perhaps it would be feasible to write a wrapper using a counter which > makes the SELECT and then return every fifth row to the SELECT calling the > wrapper. But then I assume the data still has to "travel" one step which > puts on some overhead. First of all there is oid which you can use but it is not strictly unique. It's limited to 4GB and wraps around. I would rather say declare a cursor and move the pointer as and when required. Sice you aren't retrieving large part of rows, that loop should be cheap enough. HTH Shridhar
В списке pgsql-general по дате отправления: