So, as your query is very large I will show how to solve your problem and you put it in your query. This is my test case:
Table
create table testcase(
id integer,
oil integer,
gas integer,
water integer
);
Inserts
insert into testcase values ( 1, 25, 12, 6 );
insert into testcase values ( 2, 36, 98, 19);
insert into testcase values ( 3, 51, 19, 22);
insert into testcase values ( 4, 45, 77, 37);
insert into testcase values ( 5, 22, 64, 31);
Sql
select *
from testcase as test,
(select max(oil) maxoil,
max(gas) maxgas,
max(water) maxwater
from testcase) as maxes
order by test.id
This should give you your data as you want. Look at fiddle http://sqlfiddle.com/#!3/be2b7/3/0