【问题标题】:MySQL GROUP BY how to get data from first element [duplicate]MySQL GROUP BY如何从第一个元素中获取数据[重复]
【发布时间】:2015-04-15 15:08:34
【问题描述】:

我有下一张数据表:

然后我运行这个查询:

select *, UNIX_TIMESTAMP(`time`) AS `timeu`, AVG(`value`) AS `valuea`
from `values` 
group by `currency`, DATE(`time` - interval 7 day) 
order by `id` asc 

结果我得到

如您所见,ids 是:1, 2, 3, 4, 11, 12。我想要1, 2, 3, 4, 5, 6 - 我怎样才能简单地构建我的查询来做到这一点?

【问题讨论】:

    标签: mysql sql date


    【解决方案1】:

    你不会做group by

    我怀疑你可以使用相关子查询做你想做的事:

    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 ;
    

    【讨论】:

    • 工作正常,谢谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-05
    • 1970-01-01
    • 2018-09-28
    • 1970-01-01
    • 2017-12-31
    • 2019-05-01
    • 2016-07-27
    相关资源
    最近更新 更多