我已经阅读了几个关于选择最小值、分组等的线程,但似乎无法创建一个有效的查询来解决这个问题。如有重复请见谅。
我有一个像这样的表:
ID Date Value Tag
1 1/1/13 500 NULL
2 1/1/13 10 NULL
3 1/1/13 12 NULL
4 1/2/13 99 NULL
5 1/2/13 136 NULL
6 1/2/13 17 NULL
基本上需要一个更新查询,当它具有按日期分组的最低值时,用值 1 填充 TAG 字段。在此示例中,这将是 ID 2 和 6。
更新表设置标签= 1(选择最小值?)
最佳答案
您可以通过计算 min()
并使用 join
进行过滤来做到这一点:
update t join
(select date, min(value) as minvalue
from t
group by date
) tmin
on t.date = tmin.date and t.value = tmin.minvalue
set tag = 1;
关于当由第三个分组时,MySQL 根据另一个字段的最小值更新字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19827114/