Выбор последней записи каждого дня в отметке времени и соответствующего значения - PullRequest
1 голос
/ 04 марта 2012

У меня есть следующая таблица "test",

enter image description here

Пусть данные в таблице будут следующими:

enter image description here

Теперь я хочу выбрать последнюю запись (только дату, а не метку времени) для каждого дня и соответствующее значение в виде двух столбцов.один - дата, а другой - значение.

Я могу выбрать только дату, используя следующий запрос:

SELECT max( date( date ) ) AS date
FROM test
GROUP BY date( date )
LIMIT 0 , 30 

Но я не могу получить соответствующие значения для этихдаты.Как мне это сделать..?Погуглив, я понял, что для этого мне нужно использовать join, но опять же я не смог использовать join безо всяких ошибок.

Ответы [ 3 ]

2 голосов
/ 04 марта 2012

Присоедините ваш запрос к исходной таблице:

SELECT
  baseview.`date` AS `date`,
  `test`.`value` AS `value`
FROM `test`
  INNER JOIN (
    SELECT max(date) AS date
    FROM test
    GROUP BY date( date )
    LIMIT 0 , 30 
  ) AS baseview ON `test`.`date`=baseview.`date`
1 голос
/ 04 марта 2012

Сначала измените имя столбца с зарезервированного ключевого слова date на то, что не нужно заключать в кавычки:

ALTER TABLE test
    CHANGE COLUMN `date` timestamp_entered TIMESTAMP NOT NULL
                         --- or some other sensible name

Тогда вы можете использовать:

SELECT
    grp.date_entered  
  , t.value 
FROM 
        test  AS t
    JOIN 
        ( SELECT 
            , DATE( timestamp_entered )  AS date_entered
              MAX( timestamp_entered )   AS max_timestamp
          FROM 
              test
          GROUP BY
              DATE( timestamp_entered )
        ) 
          AS grp 
      ON 
          grp.max_timestamp = t.timestamp_entered
0 голосов
/ 04 марта 2012

Как насчет

SELECT t2 . * 
FROM test t1
INNER JOIN test t2 ON t1.date = t2.date
GROUP BY DATE( t1.date ) 
ORDER BY t1.date
LIMIT 0 , 30

Он просто извлекает дату max ( edit : first) (для всего дня) и выбирает информацию для каждой строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...