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

過去7日ごとに最大値を選択

    SELECT   DATE(FROM_UNIXTIME(time)) AS daygroup, 
             MAX(value) AS max_value, 
             MIN(value) AS min_value
    FROM     tbl
    WHERE    time >= UNIX_TIMESTAMP(CURDATE() - INTERVAL 7 DAY)
    GROUP BY daygroup
    

    これにより、valueの最小値と最大値が取得されます 過去7日間の毎日。

    編集: 行全体のデータを取得するための更新されたソリューション:

    SELECT a.*
    FROM tbl a
    INNER JOIN
    (
        SELECT   DATE(FROM_UNIXTIME(time)) AS daygroup, 
                 MAX(value) AS max_value 
        FROM     tbl
        WHERE    time >= UNIX_TIMESTAMP(CURDATE() - INTERVAL 7 DAY)
        GROUP BY daygroup
    ) b ON DATE(FROM_UNIXTIME(a.time)) = b.daygroup AND a.value = b.max_value
    



    1. Oracleでクエリ結果をコンマ区切りリストとして返す

    2. mssqlを使用して更新および注文する方法

    3. 変換後の「1970-01-01」を示すPHPの日付

    4. MySQLは1行目のエラーで''の近くで使用する正しい構文