Search Postgresql Archives

Need some help with a query (uniq -c)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello!

I have a table (think of it as a table of log messages)

time |  message
-----------------------
1      |   a
2      |   b
3      |   b
4      |  b
5      |  a

the three 'b' are the same message, so I would like to write a query
that would give me a result that is similar to what the unix command
"uniq -c" would give:

first |  message | last | count
--------------------------------------
1     |     a              |   1   |     1
2     |     b              |   4   |     3     <--- here it squeezes
similar consecutive messages into a single row
5     |     a              |   5   |     1

How do I write such a command?

I could of course write a plpgsql function that loops but that is not
as interesting as finding out if this can be done in a single simple
command.

Perhaps it would be best to regularly delete neighbouring similar
rows and keeping a "count" value would reduce the number of rows and
make it more efficient if the query would be run many times and the
number of duplicate messages would be large.

-- 
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux