开发者社区 问答 正文

如何按照时间段group by

mysql如何分别按照7天,一个季度 来group by 这个时间阶段的count
时间字段存的是regdate

参考百度统计
以下是七天一个跨度
screenshot

展开
收起
a123456678 2016-07-01 15:58:13 3498 分享 版权
1 条回答
写回答
取消 提交回答
  • 季度就用月份运算一个新的值,然后group by 这个字段
    (month-1)/4+1
    1 2 3 4 ---> 1

    5 6 7 8 ---> 2
    然后,7天就用星期值,
    mysql 有函数取某个日期 regdate 的月份或者星期数。

    比如mongodb 就有这样的

    db.sales.aggregate(
       [
         {
           $project:
             {
               year: { $year: "$date" },
               month: { $month: "$date" },
               day: { $dayOfMonth: "$date" },
               hour: { $hour: "$date" },
               minutes: { $minute: "$date" },
               seconds: { $second: "$date" },
               milliseconds: { $millisecond: "$date" },
               dayOfYear: { $dayOfYear: "$date" },
               dayOfWeek: { $dayOfWeek: "$date" },
               week: { $week: "$date" }
             }
         }
       ]
    )
    2019-07-17 19:50:11
    赞同 展开评论