gpt4 book ai didi

sql - 如何选择 SUM() + Group By 之后的最大值?

转载 作者:行者123 更新时间:2023-12-03 06:04:07 26 4
gpt4 key购买 nike

几天后我将在大学进行 SQL 期末考试,我有一个查询让我抓狂!我知道这是一个愚蠢的查询,但我才刚刚开始,无法弄清楚。

因此,基本上有 2 个表:“客户”表和“订单”表。

     Client           Orders
--------- ---------
PK Client_Id PK Order_Id
Name Client_Id FK
Order_Total
Date

现在,他们要求我“列出 2011 年购买最多的客户的姓名”

因此,就我的想法而言,一方面,我将 2011 年以来的所有 Order_Total 和 Group by Client 相加,然后从该表中选择订单总数为 MAX() 总和的客户,然后显示只有该客户的姓名。问题是我不知道如何将所有这些放入一个查询中。

希望有人能帮忙!

<小时/>

感谢大家的快速回复!我真的很感动!

现在,我并不是要挑剔或其他什么,但以防万一我的老师不接受“限制”或“选择顶部”声明,有没有办法在没有这些的情况下执行此查询?

编辑:从注释移植的原始代码尝试:

SELECT 
C.NAME
FROM
CLIENTS C,
ORDERS O
WHERE
O.CLIENT_ID = C.CLIENT_ID
AND O.DATE BETWEEN '1/1/2011 00:00:00.000' and '12/31/2011 23:59:59.999'
HAVING SUM(O.ORDER_TOTAL) >= ALL (SELECT SUM (O2.ORDER_TOTAL) FROM ORDER O2 GROUP BY O2.CLIENT_ID)

最佳答案

SELECT T.X
(SELECT C.NAME X, SUM(O.ORDER_TOTAL)
FROM CLIENT C, ORDERS O
WHERE C.CLIENT_ID = O.CLIENT_ID
AND YEAR(O.DATE) = 2011
GROUP BY O.CLIENT_ID
ORDER BY 2 DESC
LIMIT 1) T;

关于sql - 如何选择 SUM() + Group By 之后的最大值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9441592/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com