Лидеры рейтинга
Мастер-Эксперт
941
Мастер-Эксперт
403
Академик
393
Мастер-Эксперт
328
Профессионал
169
Советник
69
Профессор
66
8.1.6
02.01.2021
JS: 2.2.2
CSS: 4.2.0
jQuery: 3.5.1
Установка и настройка серверов баз данных, таблицы и запросы.
Администратор раздела: Коцюрбенко Алексей Владимирович (Старший модератор)
|
Перейти к консультации №: |
|
Здравствуйте, уважаемые эксперты! Помогите, пожалуйста, написать 3 запроса в SQL.
Есть таблица pizza, содержащая id, наименование (name) и цену пиццы (price)
Есть таблица client, содержащая id и имя клиента (name)
Есть таблица orders, содержащая id_order заказа, дату заказа (dat_order) и внешний ключ id_client (ссылка на клиента)
И есть таблица order_content, содержащая внешние ключи id_order (ссылка на заказ) и id_pizza (ссылка на пиццу) и количество этой пиццы в заказе (quantity)
1) Посчитать общую сумму заказов за 2014 год.
2) Найти всех постоянных клиентов (тех, кто совершил больше одного заказа, и между заказами прошло не больше 30 дней, и последний заказ был совершён не более 30 дней назад).
3) Вывести стоимость среднего заказа в выходные.
Состояние: Консультация закрыта
Здравствуйте, Анна!
1) Посчитать общую сумму заказов за 2014 год
SELECT SUM(quantity*price) FROM (order_content JOIN orders USING(id_order)) JOIN pizza ON (id_pizza=pizza.id) WHERE YEAR(dat_order)=2014
SELECT id_client, name, count, max_interval FROM (SELECT id_client, COUNT(id_client) AS count, MAX(DATEDIFF(IFNULL((SELECT dat_order FROM orders WHERE id_order>o.id_order AND id_client=o.id_client ORDER BY dat_order LIMIT 1), CURDATE())), dat_order) AS max_interval FROM orders AS o GROUP BY id_client ORDER BY dat_order) JOIN client ON (id_client=client.id) WHERE count>1 AND max_interval<=30
SELECT AVG(cost) FROM(SELECT SUM(quantity*price) AS cost FROM (order_content JOIN orders USING(id_order)) JOIN pizza ON (id_pizza=pizza.id) WHERE DAYOFWEEK(dat_order) IN (1, 7) GROUP BY id_order)
|
Консультировал: Коцюрбенко Алексей Владимирович (Старший модератор) Дата отправки: 07.11.2020, 06:29
5
Спасибо большое!----- Дата оценки: 07.11.2020, 12:10 |
Рейтинг ответа:
+2 Сообщение модераторам Отправлять сообщения |
Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.