Группа по не дает мне новейшую группу - PullRequest
0 голосов
/ 14 октября 2011

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

ID    Building Apartment_id  Status
1     1        1             1
2     1        1             2
3     2        2             3
4     2        4             2
5     2        3             2
6     2        5             1
7     2        6             1

В настоящее время я работаю с:

SELECT * FROM `ib30_history` GROUP BY apartment_id, building ORDER BY id DESC

Ответы [ 2 ]

0 голосов
/ 15 октября 2011
SELECT 
  Building
  , Appartment_id
  , Status 
FROM ib30_history a
WHERE id = ( SELECT MAX(id) FROM ib30_history b 
             WHERE b.Building = a.Building AND b.Appartment_id = a.Appartment_id)
0 голосов
/ 15 октября 2011
 select h.apartment_id, h.status
  from history h 
       join (select apartment_id, max(status) status
               from history
              group by apartment_id) recent 
       on h.apartment_id = recent.apartment_id 
      and h.status = recent.status
...