How to select avg(select max(something) from ...) - Mailing list pgsql-general

From dfgpostgres
Subject How to select avg(select max(something) from ...)
Date
Msg-id CAAcmDX8Xs5+NbSV1UGUsj06yQpC=wYj_FOfTMZNvFe6uXDTqcw@mail.gmail.com
Whole thread Raw
Responses Re: How to select avg(select max(something) from ...)
Re: How to select avg(select max(something) from ...)
List pgsql-general
Hi:
psql 15.3

I have a table with sets of observations, each set sharing an id.
I want to get the average of the max of each set.

id  |  val
-----------
1     5.0
1     4.3
1     3.8
2     4.8
2     6.0
2     2.9
3     4.1
3     4.4
3     8.0

So I want the avg of the max of the set where id=1 (5.0), where id=2 (6.0), where id=3 (8.0) ~= 6.33...

I tried this...

              select
                 avg(x.maxsz)
               from
                 dvm.dvm_events d,
                 (select cast(max(size_g) as int) as maxsz 
                   from dvm.wa_du_profile_data 
                   where dvm_id=d.dvm_id) x
               where
                  d.project='foo' and  
                 <more conditions on d>

It doesn't like that reference to "d.dvm_id) in that subquery.

pgsql-general by date:

Previous
From: Adrian Klaver
Date:
Subject: Re: Doubts regarding pg_freespacemap extension
Next
From: David Rowley
Date:
Subject: Re: How to select avg(select max(something) from ...)