| From: | Alexy Khrabrov <deliverable(at)gmail(dot)com> | 
|---|---|
| To: | pgsql-sql(at)postgresql(dot)org | 
| Subject: | columns for count histograms of values | 
| Date: | 2008-04-30 21:01:13 | 
| Message-ID: | 824FF9F9-9997-4AD9-9955-3CA658E150D4@gmail.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-sql | 
Greetings -- I have a table of the kind
Ratings:
id integer
rating smallint
-- where value can take any value in the range 1 to 5.  Now I want to  
have a statistical table Stats of the form
id integer
min smallint
max smallint
avg real
r1 integer
r2 integer
r3 integer
r4 integer
r5 integer
-- how can I create it in one pass over Ratings?  I can use min(),  
max(), avg() for 
insert into stats values (id,select min(rating), max(rating),  
avg(rating), ...) from ratings
-- but what to do for r1,..,r5, short of subselects (select  
count(rating) from ratings where stats.id=ratings.id) for each, which  
is an overkill?
Also, if a table Stats already exists with some more columns, and we  
need to do an update, not insert, for the above, how would that work --
update stats set min=min(ratings), ... from ratings where  
stats.id=ratings.id -- how do we do the histogram in this case, where  
the id is fixed explicitly?
Cheers,
Alexy
| From | Date | Subject | |
|---|---|---|---|
| Next Message | chester c young | 2008-04-30 23:12:12 | Re: columns for count histograms of values | 
| Previous Message | Jean-David Beyer | 2008-04-30 14:25:11 | Re: Curious about wide tables. |