gpt4 book ai didi

java - 查询以获取最近日期的记录

转载 作者:行者123 更新时间:2023-11-28 23:16:11 25 4
gpt4 key购买 nike

我想根据最近的日期(最新日期)从数据库中获取记录。我在下面写了一个查询,它不起作用并显示错误:

11:55:05 select firstName,lastName from mb_orderhistory where eventType="PROPOSED_ITEM_EDIT" and orderId=80822 and MAX(updatedDate) GROUP BY orderId Error Code: 1111. Invalid use of group function 0.015 sec

这是我写的查询。

select firstName,lastName from mb_orderhistory where eventType="PROPOSED_ITEM_EDIT" and 
orderId=80822 and MAX(updatedDate) GROUP BY orderId;

最佳答案

您不能在 WHERE 子句中使用聚合(也称为组)函数——如 MAX。这是因为 WHERE 子句是针对每个可能的行进行评估的,而聚合函数的值仅在您看到所有匹配行后才定义。

参见 MySQL 的 docs on SELECT syntax ,具体来说:

In the WHERE expression, you can use any of the functions and operators that MySQL supports, except for aggregate (summary) functions.

相反,您应该只按更新日期排序(按降序排列,这样输出的第一行是最大的),并使用 LIMIT 只获取一行:

SELECT ... WHERE orderId=80822 ... ORDER BY updatedDate DESC LIMIT 1

(如果您在该列上也有相等谓词 (orderId=80822),则列上的 GROUP BY 没有多大意义。谓词意味着您将只有一个组,并且您会知道它的值:在本例中为 80822。GROUP BY 的全部目的是标识组;如果您已经知道该组,则不需要它。)

关于java - 查询以获取最近日期的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43775391/

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