SQL 在 WHERE 中使用 MAX()
Posted
技术标签:
【中文标题】SQL 在 WHERE 中使用 MAX()【英文标题】:SQL using MAX() in WHERE 【发布时间】:2021-12-01 05:39:10 【问题描述】:我有 2 张桌子:
客户(ID、名字、姓氏、地址); 订单(ID、PRODUCT_NAME、PRODUCT_PRICE、DATE_ORDER DATE、ID_CUSTOMER、AMOUNT);这是任务:获取在一个订单中购买了最多产品的客户的姓名。
不考虑没有客户的订单。请按FIRSTNAME
和LASTNAME
排序。
这是我的代码:
SELECT FIRSTNAME, LASTNAME
FROM CUSTOMERS
INNER JOIN ORDERS ON CUSTOMERS.ID = ORDERS.ID_CUSTOMER
WHERE AMOUNT = (SELECT MAX(AMOUNT) FROM ORDERS)
GROUP BY FIRSTNAME, LASTNAME
ORDER BY FIRSTNAME, LASTNAME
提前谢谢你
【问题讨论】:
我的代码什么也没输出,请告诉我我做错了什么 您可以删除群组。 作业问题陈述表明产品应该在查询中的某处。 "不考虑没有客户的订单" - 在计算 MAX() 时不要这样做。 minimal reproducible example 会让事情变得更清晰。 【参考方案1】:SELECT
CUSTOMERS.FIRSTNAME,
CUSTOMERS.LASTNAME
FROM CUSTOMERS
WHERE CUSTOMERS.ID IN (
SELECT ID_CUSTOMER
FROM ORDERS
WHERE AMOUNT = (SELECT MAX(AMOUNT) FROM ORDERS)
GROUP BY ID_CUSTOMER
)
ORDER BY FIRSTNAME,LASTNAME
【讨论】:
以上是关于SQL 在 WHERE 中使用 MAX()的主要内容,如果未能解决你的问题,请参考以下文章
在 Spark 2.4 上的 pyspark.sql.functions.max().over(window) 上使用 .where() 会引发 Java 异常
oracle 形式:pl/sql 中 where 子句中的 max 子句