gpt4 book ai didi

mysql - 理解mysql中的相关性

转载 作者:行者123 更新时间:2023-11-29 11:35:09 24 4
gpt4 key购买 nike

我有一个表,其中包含代表已下订单的人的重复 ID。每个订单都有一个日期。每个订单都有一个从 1 到 4 的状态代码。4 表示订单已取消。我正在使用以下查询:

SELECT
personID, MAX(date), status
FROM
orders
WHERE
status = 4
GROUP BY
personID

问题是,虽然这确实为每个人返回了一个唯一的记录及其最近的订单日期,但它并没有给我正确的状态。换句话说,我假设状态将与 MAX(日期) 正确相关,但事实并非如此。它只是看似随机地从其中一个订单中提取其中一种状态。我可以添加特殊性,用基本术语来说,给我来自与 MAX(日期) 相同的记录的确切状态。

最佳答案

不幸的是,没有简单的方法可以得到你想要的东西。大多数其他 RDBMS 供应商甚至不认为使用聚合函数的查询有效,除非所有非聚合结果字段都在 GROUP BY 中。此类问题的一般解决方案通常涉及子查询来获取“最后”记录,然后将其连接到原始表以获取这些行。

根据您的数据结构,这可能可行,也可能不可能。例如,如果您有多行具有相同的 personIDdate,则无法仅从这些行中确定应使用哪一个的 status .

关于mysql - 理解mysql中的相关性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36729477/

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