gpt4 book ai didi

mysql - 查找组中特定行的两个日期列之间的平均值

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

我有一个包含 2 个日期和一个产品的表格,我需要考虑每个产品的最后 3 行来计算它们之间的平均天数差异。

SELECT AVG(DATEDIFF(date2, date1)) FROM table WHERE product = 121

这给出了产品 121 所有日期差异的平均值

SELECT AVG(DATEDIFF(date2, date1)) FROM table WHERE product = 121 LIMIT 3

仍然给我所有记录的平均值,忽略 LIMIT 参数。

此外,当我尝试不同的方法时,它也会忽略最后一个参数并显示所有行的平均值。

SELECT AVG(DATEDIFF(date2, date1)) FROM table WHERE product =121 && date1 > 2015-01-01

关于如何解决这个问题或我做错了什么有什么想法吗?

最佳答案

当你遇到这样的问题时,我建议把它拆开再放回去。

在进行任何计算之前,您知道每个产品需要最后三行。因此,例如,如果您想要具有最新 date2 的行,您可以通过执行以下操作来选择它们:

SELECT *
FROM myTable
WHERE product = 121
ORDER BY date2 DESC
LIMIT 3;

这将选择您想要的 3 个最新行。然后,只需将其用作子查询即可执行聚合。这样,计算只对您关心的行进行:

SELECT product, AVG(DATEDIFF(date2, date1))
FROM(
SELECT product, date1, date2
FROM myTable
WHERE product = 121
ORDER BY date2 DESC
LIMIT 3) tempTable;

关于mysql - 查找组中特定行的两个日期列之间的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28115947/

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