哪些客户在一个订单中购买了最多的产品?
Posted
技术标签:
【中文标题】哪些客户在一个订单中购买了最多的产品?【英文标题】:What customers who bought the biggest amount of a product in one order? 【发布时间】:2021-08-23 18:44:48 【问题描述】:我有 2 张桌子:
CUSTOMERS
(ID、名字、姓氏、地址);
ORDERS
(ID、PRODUCT_NAME、PRODUCT_PRICE、DATE_ORDER DATE、ID_CUSTOMER、AMOUNT);
获取在一个订单中购买最多产品的客户的名字和姓氏。
不考虑没有客户的订单。请按 FIRSTNAME 和 LASTNAME 排序
SELECT firstname, lastname
FROM customers
LEFT JOIN orders ON customers.id = orders.id_customer
GROUP BY customers.firstname
HAVING (SELECT MAX(orders.amount) FROM orders);
我做错了什么?谢谢
【问题讨论】:
用您正在使用的数据库标记您的问题。另外,“产品的”是什么意思?样本数据和期望的结果会有所帮助。 【参考方案1】:如果你想要一个最大的客户amount
,那么最简单的方法是order by
然后只获取一行:
select c.firstname, c.lastname
from customers c join
orders o
on c.id = o.id_customer
order by o.amount desc
fetch first 1 row only;
如果您想要每个产品的最大数量,那么窗口函数是正确的方法
select pc.*
from (select o.product, c.firstname, c.lastname, o.amount,
rank() over (partition by o.product order by o.amount desc) as seqnum
from customers c join
orders o
on c.id = o.id_customer
) pc
where seqnum = 1;
【讨论】:
以上是关于哪些客户在一个订单中购买了最多的产品?的主要内容,如果未能解决你的问题,请参考以下文章