Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Сумма каждого товара в чеке > 100 / 12 сообщений из 12, страница 1 из 1
12.07.2019, 12:34
    #39836781
khl91
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма каждого товара в чеке > 100
Здравствуйте.
Подскажите, что небходимо исправить в моей запросе. Суть задачи выбрать чеки клиентов, где сумма каждого товара > 100 p.

SELECT check_number, customer_id, date, product_id, price
FROM sales
WHERE price >100

По моему запросу выгружают чеки где цена хотя бы одного продукта >100, а необходимо найти чеки где цена каждого продукта >100.
Спасибо.
...
Рейтинг: 0 / 0
12.07.2019, 13:26
    #39836821
982183
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма каждого товара в чеке > 100
По вашему запросу выгружаются все строки чеков, где цена больше 100
А не чеки.
Ключевое слово Group BY
...
Рейтинг: 0 / 0
12.07.2019, 15:08
    #39836878
khl91
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма каждого товара в чеке > 100
982183,

Тоесть
SELECT check_number, customer_id, date, product_id, price
FROM sales
WHERE price >100
GROUP BY check_number

Или я не правильно поняла?

У меня просто тоже выгружается не коректно.
С GROUP BY выгружаются все строки чеков, где цена больше 100, тоесть если в чеке три продукта стоймостью 102, 70, 130, результат 102,130.
А необходимо выгружать только чеки где все продукту > 100 р,
например чек : 120, 130, 140 - ок
чек : 102, 70, 130 - нет
...
Рейтинг: 0 / 0
12.07.2019, 16:02
    #39836901
982183
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма каждого товара в чеке > 100
Это все чеки, в которых есть товары дороже 100 руб.

Начни с задания.
Что значит "выгружать чеки"?
Тебе нужен только номер чека в котором все товары >100 или что-то более развернутое.

P/S
Я придираюсь.
...
Рейтинг: 0 / 0
12.07.2019, 16:06
    #39836904
982183
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма каждого товара в чеке > 100
SELECT check_number, customer_id, date, product_id, price
FROM sales
WHERE price >100
GROUP BY check_number

+ пойми, что значения полей product_id, price в данном случае неоднозначно, и в разрезе чеков бессмысленно.
...
Рейтинг: 0 / 0
12.07.2019, 16:11
    #39836910
982183
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма каждого товара в чеке > 100
А для решения задачи надо реализовать алгорит типа

"Количество товаров в чеке = колечеству товаров в чеке с ценою больше 100"
или
"минимальная цена товара в чеке больше 100"

Почитай про "агрегирующие функции" min(), max(), count()
+ про having
...
Рейтинг: 0 / 0
12.07.2019, 16:12
    #39836911
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма каждого товара в чеке > 100
Сгруппировать строки по чекам.
Выбрать те чеки, где минимальная сумма в группе > 100.
...
Рейтинг: 0 / 0
12.07.2019, 16:25
    #39836920
khl91
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма каждого товара в чеке > 100
982183,
Нужно получить номер чека, код всех продуктов в даном чеке и цену каждого продукта.
Просто я как не кручу получается что находить чеки где хотя би один продукт стоймостью > 100 р., а необходимо чтобы все продукты > 100 р.
...
Рейтинг: 0 / 0
12.07.2019, 16:32
    #39836932
court
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма каждого товара в чеке > 100
khl91982183,
Нужно получить номер чека, код всех продуктов в даном чеке и цену каждого продукта.
Просто я как не кручу получается что находить чеки где хотя би один продукт стоймостью > 100 р., а необходимо чтобы все продукты > 100 р.
Код: sql
1.
2.
3.
with cte as 
  (select *, min(price)over(partition by check_number) as xz from sales)
select * from cte where xz>100
...
Рейтинг: 0 / 0
12.07.2019, 16:37
    #39836936
khl91
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма каждого товара в чеке > 100
982183,

Попробовала еще так но что-то не так :(

with cte as
(
select *,
count (price) as x1,
count (price) where price > 100 as x2
from sales
group by check_number
)
select check_number, customer_id, date, product_id, price from cte
where x1=x2
...
Рейтинг: 0 / 0
12.07.2019, 16:43
    #39836941
982183
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма каждого товара в чеке > 100
Тебе ответили выше.
На мом советы внимания не обращай.
Я пытался объяснить тебе решение задачи "Выбрать чеки", а не "Выбрать все строки чеков"
...
Рейтинг: 0 / 0
12.07.2019, 16:56
    #39836952
khl91
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма каждого товара в чеке > 100
982183,

никак с "partition by" не подружусь :(
всем спасибо за помощь
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Сумма каждого товара в чеке > 100 / 12 сообщений из 12, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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