Good day. Began to learn SQL, tell me with the query. There is a table of the following form:

CREATE TABLE expenses( num int, paydate date, receiver int, money dec ); insert into expenses values (2, '25.10-2016', 1, 10000); insert into expenses values (2, '12.06-2016', 2, 20500); insert into expenses values (2, '27.02-2015', 1, 34500); insert into expenses values (2, '27.02-2015', 1, 34500); insert into expenses values (2, '27.02-2015', 2, 34500); insert into expenses values (2, '27.02-2015', 1, 50500); insert into expenses values (2, '27.02-2015', 1, 134500); insert into expenses values (2, '08.09-2014', 3, 52000); insert into expenses values (2, '08.09-2014', 3, 85000); 

It is required to withdraw the largest payment for the day when the amount of payments was the largest.

What made up:

 select max(money) from expenses where paydate = (select paydate from expenses where max(money) = (select sum(money) from expenses group by paydate)); 

But somewhere I probably make a mistake. Tell me how to fix the request?

  • 2
    select max(money) from expenses where paydate = (select paydate from expenses group by paydate order by sum(money) desc limit 1) - Mike

1 answer 1

 -- Получаем суммы по дням: select paydate ,sum(money) from expenses group by paydate -- Далее из этого самый простой вариант: select max(money) from expenses where paydate = ( select paydate from expenses group by paydate order by sum(money) desc limit 0, 1 ) 
  • Thank! I will understand how it works) - Pollux