sql查询到平均值,按日期分组后的毫秒数

时间:2013-08-11 02:25:20

标签: java android sqlite

在我的Android应用程序中,我使用sqlite来存储数据行。每天会有多行,每行都有一个以毫秒为单位存储的日期时间。

e.g。

millis, col1, col2, num
xxxx,   abc,  xyz,  24
xxxx,   abc,  xyz,  24
xxxx,   abc,  xyz,  24
xxxx,   abc,  xyz,  24

我可以有一个查询,可以按天(即24日,25日,26日等)对millis列进行分组,并给出我的num col的平均值吗?

e.g。输出:

    Date         avg
    2013-11-08   20
    2013-11-07   24

2 个答案:

答案 0 :(得分:2)

SQLite的Unix Time format只需几秒钟,你必须首先除以1000。 然后,您可以使用date functions中的一个来获取时间戳的日期部分:

SELECT DATE(millis / 1000, 'unixepoch') AS Date,
       AVG(num) AS avg
FROM MyTable
GROUP BY Date

答案 1 :(得分:-1)

使用from_unixtime将您的毫秒转换为日期,然后将该值包装到DATE()函数中,以仅保留日期部分,忽略小时,分钟和秒。

查询的其余部分很简单。

  SELECT DATE(FROM_UNIXTIME(millis)) AS date,
         AVG(num) AS average
    FROM table_name
GROUP BY date