gpt4 book ai didi

mysql - 在 MIN 日期和 MIN 日期 + 11 个月之间进行选择 - MySQL

转载 作者:太空宇宙 更新时间:2023-11-03 11:36:23 25 4
gpt4 key购买 nike

我有一个表格,其中列出了 ID、月份和值。我想查询此表以找到 min(month) where value <= 0 .

我无法以一种不会多次调用同一张表的方式编写此代码,因为该表大约有 10 毫米行。

到目前为止,我写的是使用 HAVING子句来检查 month between min(month) and min(month) + 11但它无法正常工作。查询不返回任何数据。

select id, month from table 
group by id
having month between min(month) and date_add(min(month), interval 11 month)

有没有一种无需嵌套查询和多次调用同一个表的简洁方法?

最佳答案

你基本上需要扫描表格两次。基本上,查询是这样的:

select t.*
from t join
(select id, min(yyyymm) as minyyyymm
from t
where val < 0
group by id
) tt
on t.id = tt.id and t.yyyymm >= minyyyymm and
t.yyyymm <= minyyyymm + interval 11 month;

加快速度的一个选择是具体化子查询并在 id 上添加索引。

关于mysql - 在 MIN 日期和 MIN 日期 + 11 个月之间进行选择 - MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45621893/

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