mysql presto_mysql、hive、presto对时间维度字段按照天、周、月、季度、年等进行聚合操作...

背景

最近在做一个BI产品,遇到了一个需求,就是用户在做数据分析时,希望可以根据数据的时间维度字段来进行天、周、月、季度、年等聚合操作。

简单的描述一下。假设我们有如下一批明细数据

下单时间下单金额下单用户2020-09-10101

2020-09-12202

2020-10-10303

2020-11-10404

如果我们想根据下单时间来统计一下每周的下单金额汇总、每月的下单金额汇总或者是每个季度的下单金额汇总,那么我们该如何做呢?

解决办法:

我们可以将时间通过函数转换到对应的每周的第一天、每月的第一天、每个季度的第一天,然后再根据这个时间进行分组和统计,就可以实现上面的这个需求了。

所以最终的目的,是我们如何把时间维度字段转换对应的每周的第一天、每月的第一天、每个季度的第一天、每年的第一天。

因为BI工具需要支持对多个数据源进行分析,所以下面给出了常用的几个数据源的操作方法。

话不多说,开干!

Mysql

//输出2020-09-10

SELECT DATE('2020-09-10 18:16:17');

//输出2020-09-10

SELECT DATE('2020-09-10');

复制代码

//输出 2020-09-21 9.24是周四 对应的周一是9.21

SELECT DATE_SUB('2020-09-24',INTERVAL WEEKDAY('2020-09-24') day);

复制代码

//

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值