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

時間範囲内で5分の間隔にグループ化

    これはすべての間隔で機能します。

    PostgreSQL

    SELECT
        TIMESTAMP WITH TIME ZONE 'epoch' +
        INTERVAL '1 second' * round(extract('epoch' from timestamp) / 300) * 300 as timestamp,
        name,
        count(b.name)
    FROM time a, id 
    WHERE …
    GROUP BY 
    round(extract('epoch' from timestamp) / 300), name
    


    MySQL

    SELECT
        timestamp,  -- not sure about that
        name,
        count(b.name)
    FROM time a, id 
    WHERE …
    GROUP BY 
    UNIX_TIMESTAMP(timestamp) DIV 300, name
    


    1. mysqlテーブルの行を列に転置する方法

    2. PostgreSQLで(タイムゾーンなしで)現在の時刻を取得する方法

    3. MySQL-1つのクエリで異なる値を持つ複数の行を更新します

    4. PostgreSQLで制約の名前を見つける方法