sql >> Databáze >  >> RDS >> Mysql

Vyberte největší hodnotu za každých posledních 7 dní

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

Tím získáte minimální a maximální hodnotu value za každý den za posledních 7 dní.

Upravit: Aktualizované řešení pro získání dat celého řádku:

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. Proč IS NOT NULL vrací hodnoty NULL pro Varchar(max) v SQL Server?

  2. Jak odebrat úvodní a koncové znaky v SQL Server

  3. Jak používat wireshark k jasnému zachycení dotazu mysql sql

  4. Klíčové slovo není podporováno:Metadata