【问题标题】:SQL using MAX() in WHERESQL 在 WHERE 中使用 MAX()
【发布时间】:2021-12-01 05:39:10
【问题描述】:

我有 2 张桌子:

  • 客户(ID、名字、姓氏、地址);
  • 订单(ID、PRODUCT_NAME、PRODUCT_PRICE、DATE_ORDER DATE、ID_CUSTOMER、AMOUNT);

这是任务:获取在一个订单中购买了最多产品的客户的姓名。

不考虑没有客户的订单。请按FIRSTNAMELASTNAME 排序。

这是我的代码:

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 会让事情变得更清晰。

标签: sql aggregation


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-03
    • 1970-01-01
    • 2018-01-15
    • 1970-01-01
    相关资源
    最近更新 更多