Getting statistics from tables
| От | Paulo Jan | 
|---|---|
| Тема | Getting statistics from tables | 
| Дата | |
| Msg-id | 3CB31E32.18EBD4BB@digital.ddnet.es обсуждение исходный текст | 
| Ответы | Re: Getting statistics from tables | 
| Список | pgsql-general | 
Hi all:
    Let's say I have a table that keeps track of the pages that an user has
seen in my website, something like:
              Users   |   Pages
          -----------------------------
              pepe    |   index.html
              johnsen |   about.html
              paco    |   about.html
              paco    |   index.html
              pepe    |   download.html
    It's easy to see the last 5, or 10, or 15 pages that an user has seen,
or the last users that have viewed a page. But how can I find out the 5
most seen pages, or the 5 most frequent users? My first thought (to find
the most viewed pages) was to:
    1) "SELECT DISTINCT pages FROM <table>"
    2) For each page, "SELECT count(users) FROM <table> WHERE
pages='<page>'"
    3) Find out the 5 pages that have returned the highest counts.
    At which point I imagined the perfomance problems that all the above
would cause in a dynamic page (PHP) and said to myself "ew!!".
    Is there any other way? Any built-in function in Postgres that can do
this, perhaps?
    (I used pageviews just as an example; what I have is a number of
similar situations where I need to find out this kind of data, and in
all of them said data is updated dynamically and needs to be displayed
in real time).
                        Paulo Jan.
                        DDnet.
		
	В списке pgsql-general по дате отправления: