我有下一个包含数据的表:
我运行这个查询:
select *, UNIX_TIMESTAMP(`time`) AS `timeu`, AVG(`value`) AS `valuea`
from `values`
group by `currency`, DATE(`time` - interval 7 day)
order by `id` asc
结果我得到
如您所见 id
是:1, 2, 3, 4, 11, 12
。我想要1, 2, 3, 4, 5, 6
- 我怎样才能简单地构建我的查询来做到这一点?
最佳答案
您不会执行分组依据
。
我怀疑你可以使用相关子查询来做你想做的事情:
select v.*, UNIX_TIMESTAMP(`time`) AS `timeu`,
(SELECT AVG(`value`)
from values v2
where v2.currency = v.currency and
v2.time >= v2.time - interval 7 day
) as `valuea`
from `values` v
order by `id` asc ;
关于MySQL GROUP BY 如何从第一个元素获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29653935/