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

欠落しているエントリを含む15分ごとのGROUPBYタイムスタンプ

    本当にmysqlでそれを実行したい場合は、15分間隔をどのように編成するかに応じて、これはある程度機能するはずです。私は出力をtime from | time to | number of reports 特定のタイムスタンプを出力し、時間範囲のカウントをそれに関連付けることは無意味で少しでも欺瞞的だと思うからです。

    SELECT CONCAT (
            lpad(hours.a, 2, "0"),
            ":",
            lpad(minutes.a * 15, 2, "0"),
            ":00"
            ) AS 'from',
        CONCAT (
            lpad(hours.a, 2, "0"),
            ":",
            lpad((minutes.a * 15) + 14, 2, "0"),
            ":59"
            ) AS 'to',
        count(r.id)
    FROM (
        SELECT 0 AS a
    
        UNION
    
        SELECT 1 AS a
    
        UNION
    
        SELECT 2 AS a
    
        UNION
    
        SELECT 3 AS a
    
        UNION
    
        SELECT 4 AS a
    
        UNION
    
        SELECT 5 AS a
    
        UNION
    
        SELECT 6 AS a
    
        UNION
    
        SELECT 7 AS a
    
        UNION
    
        SELECT 8 AS a
    
        UNION
    
        SELECT 9 AS a
    
        UNION
    
        SELECT 10 AS a
    
        UNION
    
        SELECT 11 AS a
    
        UNION
    
        SELECT 12 AS a
    
        UNION
    
        SELECT 13 AS a
    
        UNION
    
        SELECT 14 AS a
    
        UNION
    
        SELECT 15 AS a
    
        UNION
    
        SELECT 16 AS a
    
        UNION
    
        SELECT 17 AS a
    
        UNION
    
        SELECT 18 AS a
    
        UNION
    
        SELECT 19 AS a
    
        UNION
    
        SELECT 20 AS a
    
        UNION
    
        SELECT 21 AS a
    
        UNION
    
        SELECT 22 AS a
    
        UNION
    
        SELECT 23 AS a
        ) hours
    INNER JOIN (
        SELECT 0 AS a
    
        UNION
    
        SELECT 1 AS a
    
        UNION
    
        SELECT 2 AS a
    
        UNION
    
        SELECT 3 AS a
        ) minutes
    LEFT JOIN reports r ON hours.a = hour(r.t)
        AND minutes.a = floor(minute(r.t) / 15)
    GROUP BY hours.a,
        minutes.a;
    



    1. Postgresを使用して複数のスキーマからすべてのレコードを選択(取得)します

    2. SQL Serverトリガーは、新しい行から別のテーブルに値を挿入します

    3. Oracleで日時値から秒数を返す方法

    4. PHP / MySQLを使用してデータアクセスをカプセル化するための良い方法は何ですか?