有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

例如

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

我可以用一个查询按天(即24、25、26等)对毫列进行分组,并给出我的平均数吗

例如,输出:

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

共 (2) 个答案

  1. # 1 楼答案

    SQLite的Unix Time format以秒为单位,必须先除以1000。 然后可以使用date functions中的一个来获取时间戳的日期部分:

    SELECT DATE(millis / 1000, 'unixepoch') AS Date,
           AVG(num) AS avg
    FROM MyTable
    GROUP BY Date
    
  2. # 2 楼答案

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

    查询的其余部分无关紧要

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