sql >> データベース >  >> RDS >> SQLite

SQLite group by / count時間、日、週、年

    Unixタイムスタンプ(「エポック」からの秒数)を使用することに投票します。これは、範囲の計算に便利であり、最も堅牢な日時ライブラリによって理解されるためです。

    SQLiteは、Unixタイムスタンプを操作するためのいくつかのヘルパー関数を提供します。ここで最も役立つのはstrftimeです。 。

    strftime('%s', 'now')を使用して、現在のUnixタイムスタンプを挿入できます。 INSERTで。

    後で、関心のある特定の時間範囲がわかっている場合は、その範囲の最小タイムスタンプと最大タイムスタンプを計算し、それらの間の行を選択できます。

    SELECT * FROM data 
    WHERE timestamp >= strftime('%s', '2012-12-25 00:00:00') 
    AND timestamp < strftime('%s', '2012-12-25 01:00:00');
    

    または、1年のリクエストを月ごとにカウントしたい場合:

    SELECT strftime('%m', timestamp), count(*) FROM Data
    WHERE timestamp >= strftime('%s', '2012-01-01 00:00:00') 
    AND timestamp < strftime('%s', '2013-01-01 00:00:00') 
    GROUP BY strftime('%m', timestamp);
    

    フォーマットオプションstrftimeを巧みに使用する が提供するので、おそらくこれらのクエリのほとんどをかなり迅速に解決できます。




    1. チェック制約内のSQLサブクエリ

    2. MySQLで重複レコードを見つける方法

    3. あなたのビジネスがMicrosoftAccessを必要とする10の理由

    4. MSSQLServerバックエンドを使用したDCountおよびDLookupの代替ソリューション