1

私の Android アプリケーションでは、sqlite を使用してデータ行を保存しています。1 日に複数の行が存在し、各行にはミリ秒単位で保存された日時もあります。

例えば

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

millis 列を日ごと (つまり、24 日、25 日、26 日など) にグループ化し、num col の平均を与えるクエリを作成できますか?

例:出力:

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

2 に答える 2

2

SQLite のUnix Time 形式は秒単位です。最初に 1000 で割る必要があります。次に、日付関数のいずれかを使用して、タイムスタンプの日付部分を取得できます。

SELECT DATE(millis / 1000, 'unixepoch') AS Date,
       AVG(num) AS avg
FROM MyTable
GROUP BY Date
于 2013-08-11T07:34:26.330 に答える
-1

from_unixtime を使用してミリ秒を日付に変換し、その値を DATE() 関数にラップして、時間、分、秒を無視して日付部分のみを保持します。

クエリの残りの部分は簡単です。

  SELECT DATE(FROM_UNIXTIME(millis)) AS date,
         AVG(num) AS average
    FROM table_name
GROUP BY date
于 2013-08-11T03:02:45.737 に答える