Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Добрый день ! Прошу помочь в решении задачи.

Влад Ученик (223), на голосовании 1 год назад
Задача:
Выведите на экран названия компаний-покупателей, которые хотя бы раз оформили более одного заказа в день. Для подсчёта заказов используйте поле order_date. Отсортируйте названия компаний в лексикографическом порядке по возрастанию.
Мой код:
SELECT c.company _name
FROM northwind.customers AS c
LEFT JOIN northwind.orders AS o ON c.customer_id = o.customer_id
GROUP BY 1
HAVING(o.customer_id) > 1
ORDER BY 1 ASC

Помогите найти ошибку в коде !
Голосование за лучший ответ
Даниил Храновский Гуру (4749) 1 год назад
В данном случае ошибка заключается в том, что условие в HAVING некорректно написано. Вместо (o.customer_id) > 1 нужно использовать COUNT(DISTINCT o.order_date) > 1, чтобы проверить, имеет ли компания более одного заказа в день:

SELECT c.company _name
FROM northwind.customers AS c
LEFT JOIN northwind.orders AS o ON c.customer_id = o.customer_id
GROUP BY c.company _name
HAVING COUNT(DISTINCT o.order_date) > 1
ORDER BY c.company _name ASC
ВладУченик (223) 1 год назад
Добрый день, Даниил !
Спасибо за ответ !
При проверке Вашего варианта кода, выводится ошибка - "Слишком много строк в полученном результате"
Даниил Храновский Гуру (4749) Владимир Просецкий, SELECT c.company _name FROM northwind.customers AS c LEFT JOIN northwind.orders AS o ON c.customer_id = o.customer_id GROUP BY c.company _name, o.order_date HAVING COUNT(DISTINCT o.order_date) > 1 ORDER BY c.company _name ASC можно так попробовать
ВладУченик (223) 1 год назад
При проверке Ваше кода выплывает сообщение:

syntax error at or near "_name"


SELECT c.company _name
FROM northwind.customers AS c
LEFT JOIN northwind.orders AS o ON c.customer_id = o.customer_id
GROUP BY c.company _name, o.order_date
^^^
HAVING COUNT(DISTINCT o.order_date) > 1
ORDER BY c.company _name ASC
Похожие вопросы