如何分别将时间列分为5分钟间隔和最大值/最小值SQL?

阿娃钦(Ava Chin)

我有一个数据库,该数据库的Datetime列包含+/- 30秒的间隔,而Value列包含10到100之间的随机数。我的表如下所示:

datetime               value
----------------------------
2016-05-04 20:47:20    12
2016-05-04 20:47:40    44
2016-05-04 20:48:30    56
2016-05-04 20:48:40    25
2016-05-04 20:49:30    92
2016-05-04 20:49:40    61
2016-05-04 20:50:00    79
2016-05-04 20:51:20    76
2016-05-04 20:51:30    10
2016-05-04 20:51:40    47
2016-05-04 20:52:40    23
2016-05-04 20:54:00    40
2016-05-04 20:54:10    18
2016-05-04 20:54:50    12
2016-05-04 20:56:00    55

我想要以下输出:

datetime               max_val    min_val
-----------------------------------------
2016-05-04 20:45:00    92         12
2016-05-04 20:50:00    79         10
2016-05-04 20:55:00    55         55

之前,我甚至可以继续获得最大值和最小值,我首先要GROUP日期时间列分成5个分钟的间隔。根据我的研究,我得出了以下结论:

SELECT
  time,
  value
FROM random_number_minute
GROUP BY
  UNIX_TIMESTAMP(time) DIV 300

这实际上的datetime列到5个分钟为间隔是这样的:

datetime
-------------------
2016-05-04 20:47:20
2016-05-04 20:50:00
2016-05-04 20:56:00

这非常接近,因为它需要下一个最接近的日期时间到,在这种情况下,20:45:0020:50:00等我想ROUNDDOWN日期时间到最近的5分钟不分的,例如,如果分钟数:

minutes    rounddown
--------------------
10         10
11         10
12         10
13         10
14         10
15         15
16         15
17         15
18         15
19         15
20         20

时间可能是14:59,我想四舍五入10:00经过数小时的研究,我也尝试使用此方法:

SELECT
    time,
    time_rounded =
    dateadd(mi,(datepart(mi,dateadd(mi,1,time))/5)*5,dateadd(hh,datediff(hh,0,dateadd(mi,1,time)),0))

但是遗憾的是这没有用。我收到此错误:

调用本机函数“ datediff”时参数计数不正确

我也尝试过这个:

SELECT  
    time, CASE  
          WHEN  DATEDIFF(second, DATEADD(second, DATEDIFF(second, 0, time_out) / 300 * 300, 0), time) >= 240
            THEN    DATEADD(second, (DATEDIFF(second, 0, time) / 300 * 300) + 300, 0)
            ELSE    DATEADD(second, DATEDIFF(second, 0, time) / 300 * 300, 0)
          END

返回相同的错误。

我怎样才能做到这一点?在对日期时间进行分组之后,如何获得数据分组的最大值和最小值?

草莓

抱歉,如果我重复另一个答案。我会删除的。

SELECT FROM_UNIXTIME(FLOOR(UNIX_TIMESTAMP(datetime)/300)*300) x
     , MIN(value) min_value
     , MAX(value) max_value 
  FROM my_table 
 GROUP 
    BY x;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

离子日期时间从最小值增加30分钟,从最大值减少30分钟

来自分类Dev

如何从Java中的ArrayList <Double>中删除最小值和最大值(仅一分钟,仅一个最大值,不是全部)

来自分类Dev

时间序列 Mathematica 最大值和最小值

来自分类Dev

如何基于python中的一天中的时间,从最大值和最小值每分钟计算曝光时间

来自分类Dev

SQL本地最小值和最大值

来自分类Dev

SQL查询最小值和最大值

来自分类Dev

SQL查询最小值和最大值

来自分类Dev

列的最大值和最小值之间的差异

来自分类常见问题

Postgres如何在最小值列和最大值列之间返回值

来自分类Dev

Postgres如何在最小值列和最大值列之间返回值

来自分类Dev

最小值和最大值

来自分类Dev

gnuplot:如何绘制最大值和/或最小值

来自分类Dev

如何从Json获取最小值和最大值

来自分类Dev

如何打印最大值和最小值?

来自分类Dev

SQL 按值分组,具体取决于日期字段的最小值和最大值给出的间隔

来自分类Dev

如何从第1列和第2列提取最大值和最小值

来自分类Dev

如何删除具有最小值和最大值的空值的列

来自分类Dev

如何使用 python pandas 找到 ID 1 和 5 的最小值和最大值?

来自分类Dev

如何在SQL Server中计算序列中组的最小值和最大值?

来自分类Dev

如何在 SQL 中获取一组行的最小值和最大值?

来自分类Dev

如何在一列中显示最大值和最小值

来自分类Dev

如何从Java中的多列集合中获取最大值和最小值

来自分类Dev

MySQL如何在求和一列后找到最大值和最小值

来自分类Dev

将Oracle表记录拆分为批处理,并获得最大值,最小值和该列的最小值

来自分类Dev

在一段时间内以相等的时间间隔缓慢地查询PostgreSQL的最小值和最大值

来自分类Dev

如何在5分钟到30分钟之间汇总数据,同时保持日期间隔和其他值

来自分类Dev

R中经过的时间-最小值,最大值

来自分类Dev

获取最小值/最大值的时间戳

来自分类Dev

如何设置Vega-Lite时间序列图的x轴的最大值和最小值?

Related 相关文章

  1. 1

    离子日期时间从最小值增加30分钟,从最大值减少30分钟

  2. 2

    如何从Java中的ArrayList <Double>中删除最小值和最大值(仅一分钟,仅一个最大值,不是全部)

  3. 3

    时间序列 Mathematica 最大值和最小值

  4. 4

    如何基于python中的一天中的时间,从最大值和最小值每分钟计算曝光时间

  5. 5

    SQL本地最小值和最大值

  6. 6

    SQL查询最小值和最大值

  7. 7

    SQL查询最小值和最大值

  8. 8

    列的最大值和最小值之间的差异

  9. 9

    Postgres如何在最小值列和最大值列之间返回值

  10. 10

    Postgres如何在最小值列和最大值列之间返回值

  11. 11

    最小值和最大值

  12. 12

    gnuplot:如何绘制最大值和/或最小值

  13. 13

    如何从Json获取最小值和最大值

  14. 14

    如何打印最大值和最小值?

  15. 15

    SQL 按值分组,具体取决于日期字段的最小值和最大值给出的间隔

  16. 16

    如何从第1列和第2列提取最大值和最小值

  17. 17

    如何删除具有最小值和最大值的空值的列

  18. 18

    如何使用 python pandas 找到 ID 1 和 5 的最小值和最大值?

  19. 19

    如何在SQL Server中计算序列中组的最小值和最大值?

  20. 20

    如何在 SQL 中获取一组行的最小值和最大值?

  21. 21

    如何在一列中显示最大值和最小值

  22. 22

    如何从Java中的多列集合中获取最大值和最小值

  23. 23

    MySQL如何在求和一列后找到最大值和最小值

  24. 24

    将Oracle表记录拆分为批处理,并获得最大值,最小值和该列的最小值

  25. 25

    在一段时间内以相等的时间间隔缓慢地查询PostgreSQL的最小值和最大值

  26. 26

    如何在5分钟到30分钟之间汇总数据,同时保持日期间隔和其他值

  27. 27

    R中经过的时间-最小值,最大值

  28. 28

    获取最小值/最大值的时间戳

  29. 29

    如何设置Vega-Lite时间序列图的x轴的最大值和最小值?

热门标签

归档