powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите составить SQL запрос
7 сообщений из 7, страница 1 из 1
Помогите составить SQL запрос
    #38688832
stivo32
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите новичку.Есть заполненная таблица расходов Expenses с полями paydate(дата платежа) и value(сумма платежа)
Задание гласит: Вывести наибольший платеж за тот день, когда сумма платежей была наибольшей. Есть некоторое недопонимание принципов использования групповых функций((

Код: plsql
1.
SELECT paydate,sum(value) sum_val FROM expenses GROUP BY paydate;

- этот подзапрос выводит таблицу с суммой платежей по каждой дате. Тут все красиво.

Код: plsql
1.
SELECT paydate,max(sum_val) FROM (SELECT paydate,sum(value) sum_val FROM expenses GROUP BY paydate) tab_sum;


Тут на основе прошлого подзапроса я пытаюсь вывести пару дата - максимальное значение. Максимальное значение выводится, но естественно дата ставится к нему первая по списку.
Код: plsql
1.
SELECT max(value) FROM expenses WHERE paydate=(SELECT paydate FROM (SELECT paydate,sum(value) sum_val FROM expenses GROUP BY paydate) tab_sum WHERE sum_val=max(sum_val));


Итог должен быть примерно таким, за исключением того, что использование функции MAX в конце запроса выводит ошибку.
...
Рейтинг: 0 / 0
Помогите составить SQL запрос
    #38688875
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А где ты получаешь список дат, в которые сумма платежей максимальна, а?
...
Рейтинг: 0 / 0
Помогите составить SQL запрос
    #38688879
stivo32
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так вот в этом почти и весь вопрос)
Код: plsql
1.
SELECT paydate,max(sum_val) FROM (SELECT paydate,sum(value) sum_val FROM expenses GROUP BY paydate) tab_sum;


в моем понимании запрос должен делать что-то подобное. то есть он выводит таблицу вида Дата-максимальный платеж. Просто надо его поправить так, чтобы даты он выводил в соответствии с max(sum_val)
...
Рейтинг: 0 / 0
Помогите составить SQL запрос
    #38688880
stivo32
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
stivo32в моем понимании запрос должен делать что-то подобное. то есть он выводит таблицу вида Дата-максимальный платеж.
Прошу прощения. имелось ввиду Дата-максимальная сумма платежей в этот день
...
Рейтинг: 0 / 0
Помогите составить SQL запрос
    #38688922
chromeilya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ты почти у цели =)
where не так просто пишется =)

вот мой =)
select paydate, raz.maks from(select paydate, sum(value) as summ, max(value) as maks from expenses group by paydate) raz where raz.summ=(select max(summ) from (select sum(value) as summ from expenses group by paydate) tor );


Посмотрим что скажет Смалюк =)
...
Рейтинг: 0 / 0
Помогите составить SQL запрос
    #38689117
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Фигня.

Напиши первый запрос - который получает ТОЛЬКО максимальную сумму за день. По всей таблице. Без самого дня.
Напиши второй запрос, получающий дни, когда сумма максимальна - при этом первый используется как подзапрос в критерии постгруппового отбора.
Затем напиши третий запрос, получающий максимальную сумму одного платежа - при этом второй запрос используется как подзапрос в критерии отбора.
И, наконец, четвёртый запрос отбирает нужные записи, используя второй и третий запросы в секции отбора.
...
Рейтинг: 0 / 0
Помогите составить SQL запрос
    #38689120
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PS. Полученный монстр, конечно, неоптимален. Но, во-первых, он делает требуемое, и, во-вторых, ты будешь понимать, КАК получается нужный результат.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите составить SQL запрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]