powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Не могу решить задачу для чайников
3 сообщений из 3, страница 1 из 1
Не могу решить задачу для чайников
    #39910547
antongerva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, уважаемые форумчане!

Прошу о помощи с задачей для чайников:

Составьте запрос, который будет получать сумму платежей для всех получателей, у которых в названии есть слово гипермаркет. При этом существует две таблицы. Первая называется expenses, у которой названия столбцов следующие - num, value, receiver. Вторая называется receivers, у которой названия столбцов следующие - num, name. В
первой таблице поле receiver имеет тип INT, значение которого соответствует полю num таблицы receivers.

Блоки для ввода решения (всего 22 блока):

(

FROM

)

SUM(receiver)

receiver

%гипермаркет%

SELECT

FROM

SUM(value)

WHERE

IN

num

WHERE

SELECT

expenses

receivers

name

LIKE

;

=

AVG(value)

DISTINCT


Заранее благодарю за ответ!

Также прилагается скриншот с задачей и блоками для ввода решения.
...
Рейтинг: 0 / 0
Не могу решить задачу для чайников
    #39911244
antongerva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Разобрался сам:

select sum(value) from expenses where receiver in (select num from receivers where name like '%гипермаркет%');

Также обращаю внимание на отсутствие одиночных ковычек в задании. В моём решении они есть.

Всем добра!
...
Рейтинг: 0 / 0
Не могу решить задачу для чайников
    #39911246
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запрос-то рабочий - но один из самых неудачных с точки зрения производительности. Да и с расширяемостью у него не очень - логика практически тупиковая, финализованная, дополнять её непросто. Впрочем, если ограничиваться выданными блоками, то куда деваться...

В большинстве случаев старайтесь использовать связывание таблиц с последующим отбором. Т.е. правильным с точки зрения производительности будет запрос
Код: sql
1.
2.
3.
4.
5.
SELECT SUM(value) 
FROM expenses 
JOIN receivers 
    ON expenses.receiver = receivers.num
WHERE receivers.name LIKE '%гипермаркет%';
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Не могу решить задачу для чайников
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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