Thread: Can you get a whole row with a max on one column

Can you get a whole row with a max on one column

From
"Scott V. McGuire"
Date:
I have a table with these columns (and more but irrelevant ones)

| magnetic_susceptibility          | float8
| spin_coupling                    | float8
| boundary_coupling                | float8

I want a query to give (spin_coupling, boundary_coupling) where for each
boundary_coupling it gives the spin_coupling for which magnetic_susceptibility is
maximum.

Kinda like:
select boundary_coupling, max(magnetic_susceptibility) from run_averages group by
boundary_coupling;

except I don't want to see max(magnetic_susceptibility) but the spin_coupling which
corresponds to max(magnetic_susceptibility).

I know I can do this with a small program, but I would like to have a single query
so that I can use psql -c "query" in a script and pipe the results to a file.

Thanks,
--
Scott V. McGuire <svmcguir@syr.edu>
GnuPG key available at http://physics.syr.edu/~svmcguir
GnuPG key fingerprint: 21EA 4999 3620 3E1D 71EC  98A9 5B9B EF52 1258 6D53
GnuPG is at http://www.gnupg.org/





Re: [GENERAL] Can you get a whole row with a max on one column

From
Yury Don
Date:
Hello Scott,

Once, Friday, January 28, 2000, 12:26:10 AM, you wrote:

SVM> I have a table with these columns (and more but irrelevant ones)

SVM> | magnetic_susceptibility          | float8
SVM> | spin_coupling                    | float8
SVM> | boundary_coupling                | float8

SVM> I want a query to give (spin_coupling, boundary_coupling) where for each
SVM> boundary_coupling it gives the spin_coupling for which magnetic_susceptibility is
SVM> maximum.

SVM> Kinda like:
SVM> select boundary_coupling, max(magnetic_susceptibility) from run_averages group by
SVM> boundary_coupling;

SVM> except I don't want to see max(magnetic_susceptibility) but the spin_coupling which
SVM> corresponds to max(magnetic_susceptibility).

SVM> I know I can do this with a small program, but I would like to have a single query
SVM> so that I can use psql -c "query" in a script and pipe the results to a file.

SVM> Thanks,

Perhaps
select a.spin_coupling, b.boundary_coupling from qq a
where a.magnetic_susceptibility=(select max(magnetic_susceptibility)
                         from qq b where b.boundary_coupling=a.boundary_coupling)

Best regards,
 Yury  ICQ 11831432
 mailto:yura@vpcit.ru