Mysql
 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Разлика между типовете данни int и int(2) в моя sql

  2. Производителността на MYSQL е бавна при използване на сортиране на файлове

  3. MySQL - Използване на If Then Else в MySQL UPDATE или SELECT заявки

  4. Как да премахнете дублиращи се елементи в MySQL с набор от данни от 20 милиона реда?

  5. Кой тип данни на MySQL да използвате за IP адрес?